matlab练习程序(读取列不一致的数据)
通常情况我们使用matlab载入数据时,使用load或importdata函数基本就能满足需求。
不过如果数据列是不一致的,又不想读数据的时候每一行去遍历,那么可以使用textscan这个函数。
比如下面这段数据:
1 2 3
2 3 5 6
4 5 6 7 8
1 3 7 9 2
可以用如下代码处理:
clear all; close all; clc; fp= fopen('test.txt','r'); textcell = textscan(fp,'%f %f %f %f %f','delimiter',' '); %按最多的列进行格式化,以空格为分割 data=cell2mat(textcell); %转成矩阵形式,再通过Nan判断数据是否有效即可 fclose(fp);
得到data就方便后续数据处理了。