2013-10-13 2 views
1

При попытке следующей конкатенации:Конкатенации числовой матрицы с 1xN ячейкой

for i=1:1:length(Open) 
    data(i,1) = Open(i); 
    data(i,2) = Close(i); 
    data(i,3) = High(i); 
    data(i,4) = Low(i); 
    data(i,5) = Volume(i); 
    data(i,6) = Adj_Close(i); 
    data(i,7) = cell2mat(dates(1,i)); 
end 

Где все матрицы, но dates содержат двойные значения, и dates является массивом ячеек с датами в формате «2001-01-01 ». Выполнение кода выше, я получаю следующее сообщение об ошибке:

??? Subscripted assignment dimension mismatch. 

Error in ==> Test_Trades_part2 at 81 
      data(i,7) = cell2mat(dates(1,i)); 

Код выше привязан к мастер-кода, который принимает данные от Yahoo Finance, а затем помещает его в моей базе данных SQL.

+1

вы не можете иметь строки и парные разряды в той же матрице. Лучшим вариантом было бы иметь все в ячейке. – MZimmerman6

+0

Не удалось ввести такую ​​ячейку в базу данных SQL, хотя – Nanaki

ответ

0

Удобный способ хранения дат в полностью цифровом формате с datenum:

>> data(i,7) = datenum('2001-01-01'); 
>> disp(data(i,:)) 
     0   0   0   0   0   0  730852 

ли это полезно для вас, зависит от того, что вы собираетесь делать с базой данных SQL. Howeer, преобразование обратно в строку с помощью MATLAB легко проверить с помощью команды datestr:

>> datestr(730852,'yyyy-mm-dd') 
ans = 
2001-01-01 

ПРИЛОЖЕНИЕ:

A serial date number represents a calendar date as the number of days that has passed since a fixed base date. In MATLAB, serial date number 1 is January 1, 0000.

0

Спасибо всем за помощь!

Я решил эту проблему с помощью следующей methodlogy (с учетом структур, должны иметь мысль о том, что .. глупую меня):

data = [open, close_price, high, low, volume, closeadj]; 
     s = struct('OpenPrice', data(:,1), 'ClosePrice', data(:,2), 'High', data(:,3), 'Low', data(:,4), 'Volume', data(:,5), 'Adj_Close', data(:,6), 'Dates', {dates}); 

Таким образом, я ввожу все значения, содержащиеся в структуры, в обход необходимости для конкатенации числовых и строковых матриц. Однако, несмотря на это, не допускается наличие таких матриц в матрице; Я бы предположил, что именно по этой причине они создали структуры.

Смежные вопросы