2012-09-12 164 views
0

我是Matlab中的新手。我有4個不同的載體,我需要添加它們是這樣的:在Matlab中添加矢量

MOD1 + LAN1 = X1 模2 + LAN 2 = X2

但你可以在代碼中的數字是不同的看到。

mod1= [413 443 467 487 531 547 648 666 677 747 859 867 905 936 1388 1631 2121]; 
mod2= [mout8_c mout9_c mout3_c mout10_c mout11_c mout12_c mout1_c mout13_c mout14_c mout15_c mout2_c mout16_c mout17_c mout18_c mout26_c mout6_c mout7_c] 

lan1= [485 560 660 815 1650 2215]; 
lan2=[out1_c out2_c out3_c out4_c out5_c out7_c] 

所以,我一直在做X1是:

x=[mod1 lan1]; 
x1= sort(x); 

但問題是Y上,因爲我需要的位置是相同的(例如像上的位置413 = mout8_c),但數字是完全不同的。

總結(如果你看這張圖也許會更好)。我有這些觀點,我需要按照每個觀點的順序添加它們。 http://img88.imageshack.us/img88/4604/16620372.jpg

非常感謝提前和問候,

艾瑪

+0

我不明白這是可能的,因爲mod1和lan1具有不同的維數。 – bdecaf

+0

謝謝bdecaf!我也不知道該怎麼做! – user1578688

+0

那麼你期望結果如何? – bdecaf

回答

0

你不添加這些載體,你將它們連接起來。你不能添加不同大小的矢量。

當您對x進行排序時,您可以獲得排列向量。得到它,使用它,而不是Ÿ單獨排序它

temp = [mod1 lan1]; 
[x1, perm] = sort(temp); 
temp = [mod2 lan2]; 
x2 = temp(perm); 

我用X2,而不是Y的 - 這是你在你的問題的開頭使用了什麼。

+0

再次感謝! – user1578688

0

最後,我用代碼:

mod1= [413 443 467 487 531 547 648 666 677 747 859 867 905 936 1388 1631 2121]'; 
lan1= [485 560 660 815 1650 2215]'; 
mod2 = { 'mout8_c' 'mout9_c' 'mout3_c' 'mout10_c' 'mout11_c' 'mout12_c' 'mout1_c' 'mout13_c' 'mout14_c' 'mout15_c' 'mout2_c' 'mout16_c' 'mout17_c' 'mout18_c' 'mout26_c' 'mout6_c' 'mout7_c'}'; 
lan2 = {'out1_c' 'out2_c' 'out3_c' 'out4_c' 'out5_c' 'out7_c'}'; 
[x1,i1] = sort([mod1;lan1]); 
y = [mod2;lan2]; 
out = y(i1); 

謝謝很多給大家!