我是Matlab的新手。我有4个不同的向量,我需要像这样添加它们:
mod1 + lan1 = x1 mod2 + lan2 = 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 :(得分:0)
您不会添加这些向量,而是将它们连接起来。您无法添加不同大小的矢量。
在x上使用sort时,可以获得置换向量。获取它并在y上使用它而不是单独排序
temp = [mod1 lan1];
[x1, perm] = sort(temp);
temp = [mod2 lan2];
x2 = temp(perm);
我使用的是x2而不是y - 这是你在问题的开头使用的。
答案 1 :(得分: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);
非常感谢大家!