Три вещи:
1) Я предпочитаю использовать функциональную форму вызовов, чтобы вы могли передавать переменные, а не статические строки.
save -ascii matrix.txt newmatrix
эквивалентно:
save('-ascii','matrix.txt','newmatrix')
Другими словами, в первой форме все входные данные обрабатываются как строковые входные данные для функции.
2) Вы не можете добавлять массивы символов в Matlab. Скорее вы объединяете их или используете sprintf.
name = sprintf('my_vector_%g',x_vector);
save('-ascii',name)
Заметьте, используя функциональную форму, мы можем теперь передать переменную. Однако обратите внимание, что это не сработает, потому что name
должен быть либо допустимым параметром, либо переменной, а my_vector_7.3 - тоже.
3) Я не совсем уверен, что вы спрашиваете, но я думаю, что вы хотите, чтобы текстовый файл сказал «my_vector 7.3». Я не думаю, что -ascii поддерживает строки .... Вы можете написать что-нибудь, используя fprintf.
fid = fopen('matrix.txt','w');
fprintf(fid,mat2str(new_matrix));
fprintf(fid,'\n');
fprintf(fid,'my_vector %g',x_vector);
fclose(fid);