在 MATLAB 中动态标记

  • 本文关键字:动态 MATLAB matlab
  • 更新时间 :
  • 英文 :


我有一个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);

相关内容

  • 没有找到相关文章

最新更新