我有一个MATLAB脚本,它创建一个矩阵'newmatrix',并将其导出为矩阵.txt:
save -ascii matrix.txt newmatrix
在我的脚本中,我还计算矩阵的某些元素之间的距离,因为矩阵的大小取决于我在脚本中指定的变量"宽度"。
width = max(newmatrix(:,5)) - min(newmatrix(:,5))
x_vector = width + 2
变量x_vector定义为宽度 + 2
我想知道是否可以导出x_vector,将其标记为,例如 my_vector $x_vector,以便在 x_vector 的值等于 7.3 时生成"my_vector 7.3">
我试过:
save -ascii 'my_vector' + x_vector
但收到以下错误:
警告:保存:没有这样的变量+
警告:没有这样的变量"my_vector">
三件事:
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);