如何使用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将文本文件中的读取值正确读取到矩阵中的主要内容,如果未能解决你的问题,请参考以下文章