File 使用matlab对两个文件内容进行匹配,并将结果输出为矩阵

File 使用matlab对两个文件内容进行匹配,并将结果输出为矩阵,file,matlab,matrix,match,File,Matlab,Matrix,Match,我对Matlab是新手。我需要你的帮助来解决我的问题。我试图实现几个代码,但不幸的是,我无法找到解决方案 我有一个文件,我需要将每一行与其余行进行比较,并将结果输出为一个矩阵,该矩阵包含1个匹配项,否则为0个匹配项。如果使用示例中所示的2列和3列重叠两行,则矩阵有1行。例如,我在文件中有以下行 1 X 10 20 A 2 Y 15 20 T 3 C 25 40 A 输出应为: 1 2 3 1 0 1 0 2 1 0 0

我对Matlab是新手。我需要你的帮助来解决我的问题。我试图实现几个代码,但不幸的是,我无法找到解决方案

我有一个文件,我需要将每一行与其余行进行比较,并将结果输出为一个矩阵,该矩阵包含1个匹配项,否则为0个匹配项。如果使用示例中所示的2列和3列重叠两行,则矩阵有1行。例如,我在文件中有以下行

1 X 10 20 A

2 Y 15 20 T

3 C 25 40 A

输出应为:

    1    2     3       

1   0    1     0

2   1    0     0

3   0    0     0
我真的很感激你的帮助

谢谢,应该可以了

% open file
fh = fopen('test.txt');

% read data (adjust 10000 if necessary)
dat = textscan(fh, '%d %s %d %d %s', 10000);

% extract high and low values
hi = dat{4};
lo = dat{3};

% create grid
[ hig, log ] = meshgrid(hi, lo');

% compare high, low
overs = ~(log >= hig);

% check both ends & zero out diagonal
res = overs & overs' & ~logical(eye(length(hi)));

% close file
fclose(fh);

res

我不明白你的重叠规则。。。在我看来,好像只有第1行和第2行,第2行和第1行之间有重叠,而不是第2行和第3行,以及第3行和第2行之间有重叠,就像你的输出矩阵所显示的那样。是的,你是对的,我犯了一个错误。2和3之间没有规则。我已经更正了输出。为什么这里的语法突出显示出错?非常感谢gzm0提供的有用代码。但是我如何修改这段代码以获取两个输入文件,一个是xls,另一个是txt。因为数据分为两个文件,xls和txt。我想做同样的事情,但现在有两个文件使用
xlsread
读取excel文件,然后将
dat
转换为正确的格式。如果答案有帮助,也请接受。非常感谢。我的意思是,如果数据在两个文件之间分开,一个是xls,另一个是txt。如何修改代码以同时处理两个文件并输出相同的矩阵您必须正确分配变量
lo
hi
。因此,您将使用
dat_txt
dat_xls
并为
lo
hi
中的每一个取一行,而不是从一个文件中获取一个
dat