MATLAB如何导入txt中的字符串数组并比较两个字符串是否相同
现有两个txt文本(1.txt,2.txt),txt文本中的字符串均为如下形式:WESN29002410000017WESN29002410000038WESN29002...
现有两个txt文本(1.txt,2.txt),txt文本中的字符串均为如下形式:
WESN29002410000017
WESN29002410000038
WESN29002410000045
WESN29002410000047
.......
现在要比较1.txt中的每一行是否包含在2.txt中,请问如何写程序。
最好详细点,谢谢! 展开
WESN29002410000017
WESN29002410000038
WESN29002410000045
WESN29002410000047
.......
现在要比较1.txt中的每一行是否包含在2.txt中,请问如何写程序。
最好详细点,谢谢! 展开
展开全部
假设文本文件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行的数据在第二个文件中。
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行的数据在第二个文件中。
展开全部
将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
我试过了好用的
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
我试过了好用的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在file菜单中 使用import 导入txt
字符串比较 用strcmp函数
字符串比较 用strcmp函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询