很简单matlab的问题,怎样找出有相同的数值的行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了很简单matlab的问题,怎样找出有相同的数值的行相关的知识,希望对你有一定的参考价值。
参考技术A [b,c]=unique(a,'rows')这个可以返回唯一值的行和原来的行号本回答被提问者采纳Matlab读取txt文件并找出开头相同的行并输出成另一个txt文件
我想用matlab读取txt文件,然后找出文件中开头相同的那些列并输出。
比如txt文件如下:
bread diaper beer egg milk
milk diaper beer cook
bread milk diaper beer
bread butter diaper milk
coffee sweat cookie fish
bread butter coffee diaper milk egg
bread butter fish chicken
egg bread butter
fish diaper milk
coffee sweat chicken egg
每一行的数据数量不一定,而且可能还行有数字。我希望能把开头都为”bread“的那些行都选择出来并输出到另一个txt文件里。
我写的是:
a=load('sample.txt');
firstNum=a(:,1);
b=find(firstNum==1);
c=a(b,:);
disp(c);
但load貌似不能输入个数不一样且英文数字混合的文件,请教大神如何修改,谢谢了~~!!
错了,不是输出列,是输出开头相同的”行“,谢谢!!
---- sample.txt ---------------------------
bread diaper beer egg milk
milk diaper beer cook
bread milk diaper beer
bread butter diaper milk
coffee sweat cookie fish
bread butter coffee diaper milk egg
bread butter fish chicken
egg bread butter
fish diaper milk
coffee sweat chicken egg
--- m file code ---------------------------
clc;
file = 'sample.txt';
fid = fopen(file,'r');
disp(['Reading file: ',file]);
linenumber = 0;
while ~feof(fid)
linenumber = linenumber + 1;
line = fgetl(fid);
if(line(1:6) == 'bread ')
disp([num2str(linenumber),':',line]);
end
end
---- output -------------------------------
Reading file: sample.txt
1:bread diaper beer egg milk
3:bread milk diaper beer
4:bread butter diaper milk
6:bread butter coffee diaper milk egg
7:bread butter fish chicken追问
哇,谢谢大神~~成功了,但请问如何将生成的新数组以txt文件导出呢?
我写的是:
fid1=fopen('E:\new.txt');
fprintf(fid1,[line]);
fclose(fid1);
但最后存进去的不对。。求指导~~谢谢!
你只是缺少个换行符而已
fid1=fopen('E:\new.txt','w');
fprintf(fid1,[line,'\n']);
fclose(fid1);
还是不对,只输出了一行。。大神能帮忙再看看吗?谢谢了~~
追答我这边能正确运行的啊... 注意要把 fid1=fopen('E:\new.txt','w'); fclose(fid1);
放到循环外
成功了!谢谢~!!
本回答被提问者和网友采纳以上是关于很简单matlab的问题,怎样找出有相同的数值的行的主要内容,如果未能解决你的问题,请参考以下文章
matlab矩阵里有很多有相同值的元素,如何剔除多余的,每个值只留一个元素