Динамическая маркировка в MATLAB - PullRequest
0 голосов
/ 26 октября 2018

У меня есть скрипт MATLAB, который создает матрицу 'newmatrix' и экспортирует ее в виде matrix.txt:

save -ascii matrix.txt newmatrix 

В моем скрипте я также вычисляю расстояние между определенными элементами матрицы, какразмер матрицы зависит от переменной 'width', которую я указываю в скрипте.

width = max(newmatrix(:,5)) - min(newmatrix(:,5))
x_vector = width + 2

И переменная x_vector определена как ширина + 2

Я хочу знать, можно ли экспортировать x_vector, пометив его как, например, my_vector $ x_vector, чтобы «my_vector 7.3»будет производиться, когда значение x_vector равно 7,3

Я пытался:

save -ascii 'my_vector' + x_vector 

Но получаю следующие ошибки:

предупреждение: сохранить:нет такой переменной +

предупреждение: нет такой переменной 'my_vector'

1 Ответ

0 голосов
/ 26 октября 2018

Три вещи:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...