2015-11-02 61 views
1

我正在matlab中制作GUI以计算赛车的理想换档点。Matlab比较2个单列矩阵并给出位置

为此,我需要比较2个单列矩阵。

Fwheel1 = 

    1.0e+003 * 

    4.5433 
    4.6372 
    4.6770 
    4.6892 
    4.7235 
    4.8064 
    4.9451 
    5.0838 
    5.2300 
    5.3401 
    5.4864 
    5.5454 
    5.5046 
    5.4758 
    5.5028 
    5.5782 
    5.6183 
    5.6663 
    5.7380 
    5.8174 
    5.8940 
    5.9553 
    6.0364 
    6.1075 
    6.0904 
    5.9285 
    5.7654 
    5.5762 
    5.3498 
    5.1766 
    5.0548 
    4.8236 
    4.6538 

Fwheel2 = 

    1.0e+003 * 

    3.5174 
    3.5901 
    3.6209 
    3.6304 
    3.6569 
    3.7211 
    3.8285 
    3.9358 
    4.0490 
    4.1343 
    4.2475 
    4.2932 
    4.2617 
    4.2393 
    4.2602 
    4.3186 
    4.3496 
    4.3868 
    4.4423 
    4.5038 
    4.5631 
    4.6105 
    4.6734 
    4.7284 
    4.7151 
    4.5898 
    4.4635 
    4.3170 
    4.1418 
    4.0077 
    3.9134 
    3.7344 
    3.6029 

这些是2个矩阵。现在我想要比较Fwheel1Fwheel2。我想知道矩阵Fwheel2> Fwheel1中的哪个位置。

所以输出需要例如23.

我希望有人能帮助我。 亲切的问候

回答

2

你可以用find轻松做到这一点。

idx= find(Fwheel2 > Fwheel1); 

如果你只是想第一个,或前n,你可以

idx= find(Fwheel2 > Fwheel1,n); 
+0

在你的后一种解决方案中,你可能想追加''first'',或者是'find'的默认值? – Adriaan

+1

@Adriaan“方向的默认值是'first',它会找到前n个非零元素。” –

+0

嗨,大家好,感谢您的快速回复。现在我试过了: dF1 = find(Fwheel2> Fwheel1) – MertensToon

0

的另一种方法,

c=0; 
for i=1:33 
if Fwheel2(i)>Fwheel1(i) 
c=c+1; 
b[c]=i 

end 
end 
在向量b

你有你的答案

+0

这个答案不好,因为它只适用于矩阵1x33。 –

+0

因为他的大小矢量是1 * 33 ...你可以使用你的大小或使用大小(Fwhee1).... :) –

+0

我明白你为什么把33,它只是不好的编程。 –