0

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

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

1×10 20 安

2 是 15 20 吨

3℃ 25 40 安

输出应该是:

    1    2     3       

1   0    1     0

2   1    0     0

3   0    0     0

真的,我会很感激任何帮助。

谢谢

4

1 回答 1

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
于 2013-04-05T15:59:57.793 回答