2015-06-24 4 views
0

У меня есть 2 векторов столбцов с именем т и F, которая выглядит следующим образом:экспорт MATLAB файл в текстовый файл с разделителем

t= 
1 
2 
3 
4 
5 

и

f= 
10 
20 
30 
40 
50 

Я хотел бы сделать текстовый файл, который выглядит как это:

1,10 
2,20 
3,30 
4,40 
5,50 

Я попытался следующие коды, но ничего не работает до сих пор:

vec_char=char(44*ones(1,length(t)))'; %vector of comma's 

filename=fopen('functiondata.txt','w'); 
formatspec='%d %s %d\n'; 
data={t,vec_char,f}; 
[nrows,ncols]=size(data); 

for row=1:nrows 
    fprintf(filename,formatspec,data{row,:}); 
end 
fclose(filename); 

Если что-то лучше делать, было бы хорошо.

ответ

1

Я настоятельно рекомендую вам использовать dlmwrite. Это берет матрицу, а также имя файла, который вы хотите записать, и записывает его в файл. Разделитель по умолчанию, который разделяет числа, представляет собой запятую, которая является тем, что вы хотите.

Попробуйте это:

t = (1:5).'; f = (10:10:50).'; %// Your data 
dlmwrite('functiondata.txt', [t f]); 

Открытие functiondata.txt, мы получаем следующее:

1,10 
2,20 
3,30 
4,40 
5,50 

Примечание

Если вы используете Windows, символ новой строки не будет введен в правильно когда вызывается dlmwrite. Вам нужно конкретно указать это при вызове dlmwrite:

dlmwrite('functiondata.txt', [t f], 'newline', 'pc'); 
+0

theres no \ n в нем. результат подобен 1 большой строке: – Ben

+0

@ben - Проверьте мое редактирование. Я подозреваю, что вы используете Windows. – rayryeng

+1

это сработало, спасибо – Ben

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