2014-01-04 3 views
1

Так у меня есть элемент, который имеет следующую структуру:Дать MatLab ячейку в CSV файл

result{index} = {name, mean(winternights), max(winternights), var(winternights), sum(winternights)}; 

имя переменной является строка, а остальные цифры. Единственный способ я нашел, чтобы написать ячейку в файл CSV выглядит следующим образом:

fid = fopen('Measurements.csv','wt'); 
for i=1:size(result,1) 
    fprintf(fid, '%s,%d,%d,%d,%d\n', result{i,:}); 
end 
fclose(fid); 

Но это выдает ошибку: ??? Ошибка при использовании ==> fprintf Функция не определена для входов «ячейки».

Что я делаю неправильно?

ответ

1

При назначении result вызов result{i} = {...} помещает массив ячеек внутри i-го элемента массива ячеек result. Таким образом, вам необходимо изменить код записи на файл следующим образом:

fid = fopen('Measurements.csv','wt'); 
for i=1:size(result,1) 
    fprintf(fid, '%s,%d,%d,%d,%d\n', result{i}{:}); 
end 
fclose(fid); 
+0

Спасибо, что это было! Я не очень хорошо разбираюсь в работе с ячейками ... –

0

Аналогичная проблемаhere.

Вы можете сделать что-либо в этом:

[nrows,ncols]= size(mycell); 

filename = 'celldata.dat'; 
fid = fopen(filename, 'w'); 

for row=1:nrows 
    fprintf(fid, '%s %d %d %d\n', mycell{row,:}); 
end 

fclose(fid); 

Или вы можете использовать this functioncell2csv из Matlab центральной.

+0

Это именно то, что я делаю. ** celldisp ** для отображения ячейки, я не думаю, что могу использовать его для записи ячейки в файл csv. –

+0

@ pap-x является правильным, 'celldisp' не является решением. – Jonas

+0

Это была моя ошибка, я обновил. – NKN

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