我是新来的。我有两个矩阵。我必须比较一个矩阵的一个特定列和另一个矩阵(我的矩阵A包含5个以上的变量,同样的矩阵B包含相同的变量)。如果矩阵A的第一列中的元素等于第二矩阵B中的元素,那么我必须使用第二矩阵B的第三列来计算某些值,我用for循环用八度来做这件事,但是它需要花费大量的时间来计算一天的时间,我要做一年。因为矩阵的大小非常大,large.Please提出了一些替代的方法,这样我就可以减少我的时间和计算量。提前谢谢你。
感谢您对相同问题的快速响应-hfs继续,谢谢,但是只有当两个行中的两个元素都是equal.For示例时才能工作--我的矩阵是这样的,
A=[1 2 3;4 5 6;7 8 9;6 9 1]
B=[1 2 4; 4 2 6; 7 5 8;3 8 4]这里A的第一元素的第1列等于B的第一元素的第1列,甚至第二列也可以采用B的第三元素,但是由于第1列的第二元素在A和B中相等,但是第2列的第二元素不同,在这里它应该搜索该元素并在第三列中打印该元素,并且使用for循环进行此操作,由于更大的dimension.In地雷实际问题,我给出了循环的实际问题,如下所述:
for k=1:37651
for j=1:26018
if (s(k,1:2)==l(j,1:2))
z=sin((90-s(k,3))*pi/180) , break ,end
end
end 我想要一个替代的方法来做这应该比这更快。
发布于 2011-07-08 11:46:34
只要有可能,就应该使用完整的矩阵或向量。您应该尝试命令并检查交互shell中的中间结果,看看它们是如何结合在一起的。
A(:,1)选择矩阵的第一列。您可以比较矩阵/向量,结果是矩阵/向量为0/1:
> A(:,1) == B(:,1)
ans =
1
1
0如果将结果赋值,则可以再次使用它对矩阵进行索引:
I = A(:,1) == B(:,1)
B(I, 3)这将选择B的第三列,在这些行中,A和B的第一列相等。
我希望这能让你开始。
https://stackoverflow.com/questions/6623630
复制相似问题