如何使用matlab将文本文件中的读取值正确读取到矩阵中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用matlab将文本文件中的读取值正确读取到矩阵中相关的知识,希望对你有一定的参考价值。

x = cell2mat(textscan(line,'%* s%f%f%f%f%f%f%f%f%f%f','CollectOutput',1,'EmptyValue',0));

给定值为R17 19311104.430 8 103337621.26208 19311107.476 7

我应该得到输出19311104.4300000 8 103337621.262080 0 0 0 0 19311107.4760000 7

但是19311104.4300000 8 103337621.262080 19311107.4760000 7 0 0 0 0

答案

您为什么要假定输出

19311104.4300000 8 103337621.262080 0 0 0 0 19311107.4760000 7

来自输入]

R17 19311104.430 8 103337621.26208 19311107.476 7

您的操作textscan(line,'%*s%f%f%f%f%f%f%f%f%f','CollectOutput',1,'EmptyValue',0)正在从输入字符串中收集9个浮点数。您的输入字符串仅列出5个浮点数,这意味着前5个%f获得一个值,而其余4个将变为NaN(或者,由于您的0参数而成为'EmptyValue',0)。

因此,一切正常。

但是,如果您想获得想要的结果,则需要使用更多的“花式”算法,例如:

x = zeros(1,9);
tmp=cell2mat(textscan(line,'%*s%f%f%f%f%f%f%f%f%f','CollectOutput',1));
x(1:3)=tmp(1:3);
x(end-1:end) = tmp(4:5)

以上是关于如何使用matlab将文本文件中的读取值正确读取到矩阵中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MATLAB 中读取包含数字的文本文件?

matlab如何读取多个文本文件

matlab中使用fwrite将1到10写入文本文件中,再用fread读取该文本文件中的数据,怎么写程序

matlab如何读取txt文件

将 C++ MEX 文件中的值返回到 MATLAB

如何让MATLAB自己连续的读取文本文件