【发布时间】:2014-11-30 09:34:14
【问题描述】:
我想在 Matlab 中比较两个不相等矩阵的行,然后提取这些行以存储在不同的矩阵中(比如 D)。例如,
tmp = [2245; 2345; 2290; 4576]
和
id=[1 2245 564 8890 123;
2 2445 5673 7846 342;
3 2290 3428 3321 908].
Id 是一个更大的矩阵。我想找到“id”中的每个 tmp 值。尽管在下面的行中使用 intersect 命令,我已经能够找到包含 tmp 值的 id 行,但我想对 tmp 的每个值一个一个地执行此操作,因为 tmp 的每个值在ID。我尝试使用 foreach。但是,我收到一条错误消息,指出 foreach 不能用于 char 类型数组。任何人都可以建议如何解决这个问题吗?
for j=1:length(tmp);
[D,itmp,id2] = intersect(tmp(j,1),id(:,2), 'rows');
尽管使用了循环,但代码似乎并没有一次取一个 j 的值。这就是尝试“foreach j”的原因。同样在找到两个矩阵共有的行并将它们存储在 D 中之后,我想附加矩阵 id 以在 id 中的相关行旁边包含 j 的值。例如,如果 tmp 中的第一个值在第 1、3、5、10 行的 id 中重复;我想要 id 中的一列,它将在第 1、3、5、10 行旁边取值 1。对此的任何帮助将不胜感激!谢谢。
【问题讨论】:
标签: matlab