MATLAB如何导入txt中的字符串数组并比较两个字符串是否相同

现有两个txt文本(1.txt,2.txt),txt文本中的字符串均为如下形式:WESN29002410000017WESN29002410000038WESN29002... 现有两个txt文本(1.txt,2.txt),txt文本中的字符串均为如下形式:
WESN29002410000017
WESN29002410000038
WESN29002410000045
WESN29002410000047
.......
现在要比较1.txt中的每一行是否包含在2.txt中,请问如何写程序。
最好详细点,谢谢!
展开
 我来答
yu_tongkui
2012-06-05 · TA获得超过347个赞
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:146万
展开全部
假设文本文件data1.txt内容如下:
WESN29002410000017
WESN29002410000038
WESN29002410000045
WESN29002410000047
假设文本文件data2.txt内容如下:
WESN29002410000017
WESN29002410000028
WESN29002410000035
WESN29002410000047

我编写了一个Matlab函数解决你的问题,请保存为compareDataFrom2Files.m,并把三个文件(data1.txt、data2.txt和compareDataFrom2Files.m)放在同一目录下,再此目录中执行compareDataFrom2Files函数即可。

function ind=compareDataFrom2Files()

clear
clc
n=0;
f1 = fopen('data1.txt', 'r'); f2 = fopen('data2.txt', 'r');
c1 = fread(f1, '*char')'; c2 = fread(f2, '*char')';
data1 = getDataFromFile(c1); data2 = getDataFromFile(c2);
L1=length(data1);L2=length(data2);

for i=1:L1
for j=1:L2
if strcmp(data1{i},data2{j})
n=n+1;
ind(n)=i;
end
end
end

function data=getDataFromFile(file)
L=length(file);
n=0;
tempWord='';
wordStart=0;
for i=1:L
if isspace(file(i))
if wordStart==1
n=n+1;
data{1,n}=tempWord;
wordStart=0;
tempWord='';
end
else
if wordStart==1
tempWord=[tempWord file(i)];
if i==L
n=n+1;
data{1,n}=tempWord;
end
else
wordStart=1;
tempWord=file(i);
end
end
end

得到结果
ind =
1 4
表示第一个文件中的第1和第4行的数据在第二个文件中。
洛芷o
2012-06-06
知道答主
回答量:23
采纳率:0%
帮助的人:7.5万
展开全部
将1.txt读到A中2.txt读到B中
A=textread('1.txt','s');
B=textread('2.txt','s');
a=zeros(size(A));%a为标记文件,如果A(i)在B中则a(i)=1否则=0;
for i=1:size(A)
for j=1:size(B)
if isequal(A(i),B(j))
a(i)=1;
break;
end
end
end
我试过了好用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouzirun
2012-06-05 · TA获得超过160个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:196万
展开全部
在file菜单中 使用import 导入txt
字符串比较 用strcmp函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式