matlab 如何判断不同文件中相同位置的数据的大小。

比如:我有十个数据文件,文件名依次为ratio-1.txt到ratio-10.txt,文件中数据格式相同,文件名有规律,我想依次判断这些文件中每一个对应位置的数据的大小关... 比如: 我有十个数据文件,文件名依次为ratio-1.txt到ratio-10.txt ,文件中数据格式相同,文件名有规律,我想依次判断这些文件中每一个对应位置的数据的大小关系,并把依次减小的这些数据或者数据的位置输出。具体如下:
ratio-1.txt ratio-2.txt ratio-3.txt ratio-4.txt
1594.00 0.007155 1594.00 0.007175 1594.00 0.007155 1594.00 0.007157
1594.08 0.033847 1594.08 0.033857 1594.08 0.033853 1594.08 0.033865
1594.16 0.031987 1594.16 0.032076 1594.16 0.032033 1594.16 0.032000
1594.24 0.143111 1594.24 0.143105 1594.24 0.143078 1594.24 0.143037

比如这四个文件,每个文件的第一列数值是相同的,这些文件实际都是376×2大小的矩阵。比如,ratio-1.txt中第4行,第二列的0.14311,大于 ratio-2.txt中第4行,第二列的0.143105, ratio-2.txt中第4行,第二列的0.143105又大于 ratio-3.txt中第4行,第二列的0.143078 ,然后ratio-3.txt中第4行,第二列的0.143078 ,又大于ratio-4.txt中第4行,第二列的0.143037 ,满足这样一个依次递减的关系,就输出数据的第四行第一列的数据1594.24以及这些文件中依次出现的第四行第二列的数据;否则不输出。将输出的数据写在一个chose.txt的文件中。

向高手请教,这在matlab中如何实现啊????谢谢啊 !!!
展开
 我来答
qingningleyun
2013-03-12 · TA获得超过5853个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3040万
展开全部
clear all; clc;
ct = 10; % 文件数量
fun = @(x) ['ratio-' num2str(x) '.txt'];
fnm = arrayfun(fun,1:ct,'un',false); % 生成所有的文件名
format long;
data = [];
for k = 1:ct
dt = textread(fnm{k});
data(:,k) = dt(:,2);
end;
rd = data';
L = diff(rd)>0;
RT = [];
for k = 1:ct
if any(L(:,k)) == 0
a = dt(k,1);
b = data(k,:);
RT = [RT;[a b]];
end;
end;
wfn = 'chose.txt';
save(wfn,'RT','-ascii');
disp(['选出的数据已写入文件:' wfn]);
追问
谢谢你啊!!!但是在运行第一个for循环的时候,为什么出现 
Error using textread (line 167)
File not found.
这是什么意思啊?
追答
% 可能是文件名的问题,仔细检查下,文件名中是否包含空格、全角字符等。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式