【发布时间】:2018-04-12 00:45:43
【问题描述】:
我需要将一个 .txt 数据文件导入 Matlab。该文件已被制作成 3 列。每列都有给定变量的特定数字。脚本代码必须能够做到以下几点,
要求
1) 将txt中的数据导入Matlab
2) 如果值超出一定范围,Matlab 应该从列中删除值
3) Matlab 应该告诉哪一行和什么类型的错误。
我的方法
我尝试过使用以下方法,
function data = insertData(filename)
filename = input('Insert the name of the file: ', 's');
data = load(filename);
Column1 = data(:,1);
Column2 = data(:,2);
Column3 = data(:,3);
%Ranges for each column
nclm1 = Column1(Column1>0);
nclm2 = Column2(Column2 >= 10 & Column2 <= 100);
nclm3 = Column3(Column3>0);
%Final new data columns within the ranges
final = [nclm1, nclm2, nclm3];
end
问题
以上代码存在以下问题:
1) 用户插入文件名后,Matlab 不会将导入的数据保存为“数据”。因此我不知道为什么我的代码是错误的。
filename =input('Insert the name of the file: ', 's');
data = load(filename);
2) 最后的列没有相同的维度,因为我可以看到 Matlab 独立地从列中删除值。因此,有没有一种方法可以让 Matlab 从矩阵中删除值/行,而不是在给定范围的情况下从三个“向量”中删除。
【问题讨论】: