编辑 1 - 这个问题已经解决,这是由于 Floris 发现了一个错字。
我在 Matlab 中有一个单行矩阵,它被截断并导致我丢失数据。
我的代码如下:
[status,Vf_rpm_string] = system (fragment_velocity_string);
Vf_rpm_shape=regexprep(Vf_rpm_string,'\n',' ');
Vf_rpm_vector=str2num(Vf_rpm_string);
Vf_rpm= reshape(Vf_rpm_vector,[],1);
该代码执行系统命令并存储结果,结果是一个数字矩阵,有时矩阵中的最后一行的列数少于前几行。Matlab 不喜欢这样,因为它不知道如何处理最后一行中的几列空白。所以我必须从结果中删除换行符(\n)
并用空格替换它。
这工作正常,直到系统命令的结果太大,所以当我删除新行字符(\n)
并将其替换为创建单行矩阵的空格时,它对于 Matlab 来说太长了,它会截断它,我丢失了很多我的数据。因此,当我将返回的数据(作为字符串返回)转换为数字时,它会给我一个空矩阵,那么此时 reshape 命令毫无意义。
这是它在 Matlab 中的读取方式:
20.65866342... Output truncated. Text exceeds maximum line length of 25,000 characters for Command Window display.
所以 20.65866342 是我开始丢失数据之前的最后一个值。我知道它说它对于命令窗口来说太大了,但变量仍然没有存储所有数据并且它丢失了。
有没有人有任何解决方案来避免这种截断?或者有人想为我建议一种替代方法来转换我的数据吗?
我正在使用 Matlab 2012b 和 Windows 7
谢谢你的时间。