2016-02-11 2 views
1

Я пытаюсь заставить эти данные представлять себя в новую строку каждый раз, когда результат получается. Тем не менее, сейчас я получаю только одну строку в Excel.Невозможно распечатать данные MATLAB в новой строке в EXCEL

-> Я думаю, что я будучи не в состоянии сделать то, что, как только одна точка данных вводится/записи, MATLAB необходимо АВТОМАТИЧЕСКИ Goto следующая строка/строки ... которая в настоящее время она не делает ,

Любая помощь приветствуется,


figure; 
prices_pred = zeros(size(prices)); 
prices_pred(750) = prices(750); 

time_show = 15000; 

for t = 750:length(prices)-1  
    price180 = prices(t-179:t);  
    price360 = prices(t-359:t);  
    price720 = prices(t-719:t); 

    dp = theta0 + theta(1); 

    prices_pred(t+1) = prices(t) + dp; 

    if (t-750 < time_show) 
     x1 = 0:t-750; 
     y1 = prices(750:t); 
     x2 = 0:t-749; 
     y2 = prices_pred(750:t+1); 
    end 
    if (t-750 > time_show) 
     x1 = 0:time_show; 
     y1 = prices(t-time_show:t); 
     x2 = 0:time_show+1; 
     y2 = prices_pred(t-time_show:t+1); 
    end 
    plot(x1,y1,'b*',x2,y2,'m*'); 

    drawnow; 
    disp(prices_pred(t+1)); 
    disp(prices(t)); 
    disp(dp); 

    if (T > 750) 
     T = {T;table(prices_pred(t), prices(t),dp)}; 
    else 
     T = table(prices_pred(t), prices(t),dp); 
    end 
    filename = 'test.csv'; 

    writetable(T, filename); 
+0

Прежде всего, я не могу воспроизвести вашу программу из-за большого количества неизвестных переменных. Создайте [mcve]. второй - я действительно не читал ваши мысли, но вы можете использовать параметры «Range» для таблиц. А затем вы можете написать таблицу на определенную часть листа. И последний - вам действительно нужно использовать Таблицы? почему вы не хотите использовать функцию 'xlswrite'? –

ответ

0

простой способ написать Excel является использование массива ячеек и команду xlswrite.

С переменными, приведенными ниже, шаги, для этого будет выглядеть следующим образом ...

Переменные:

eventDate = [{'2016-02-10'};{'2016-02-11'};{'2016-02-12'}]; 
eventTime = [931;931;1600]; 
eventValue = [{'open'};{'open'};{'close'}]; 
xlsDir = 'c:\xls\'; 
xlsFilename = [xlsDir,'output.xls']; 

1) предварительно выделить свой массив ячеек:

nevent = length(eventTime); 
xxcell = cell(nevent+1,3); 

2) создайте заголовки для массива ячеек:

3) Добавить свои данные в массив ячеек:

for ievent = 1:nevent 
    irow = ievent + 1; icol = 1; 
    xxcell{irow,icol} = eventDate{ievent}; icol = icol + 1; 
    xxcell{irow,icol} = eventTime(ievent); icol = icol + 1; 
    xxcell{irow,icol} = eventValue{ievent}; icol = icol + 1; 
end 

4) записи в Excel:

try 
    xlswrite(xlsFilename, xxcell); 
catch 
    disp('xlswrite error'); 
end 

Я не пробовал использовать команду writetable, но этот метод работает достаточно хорошо.

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