cboboc 发表于 2010-12-9 08:12

两个向量对应位置处元素比较重组问题

现有向量a=,b=,我想把两个向量对应位置处的两个元素进行比较,然后将比较结果较小的排成一列,较大的排成一列,在这个例子中,结果应该为,我该怎么做,或者用什么函数呢?谢谢

huaijuliu 发表于 2010-12-9 08:15

a=;
b=;
c=zeros(1,5);
d=c;
for i=1:5
    c(i)=min(a(i),b(i));
    d(i)=max(a(i),b(i));
end
c
d

cboboc 发表于 2010-12-9 08:29

回复 2 # huaijuliu 的帖子

恩!是这样的,谢谢huaijuliu,非常感谢

cboboc 发表于 2010-12-9 08:36

回复 3 # cboboc 的帖子

我想再请问一下,我这样做为什么不对呢?
for i=1:5
if a(i)<b(i)
c=a
else
c=b
end
end

qibbxxt 发表于 2010-12-9 09:07

clear;
a=;b=;
abMin=min(a,b)'
abMax=max(a,b)'matlab的一个优势在于向量化的计算

yufeng 发表于 2010-12-9 09:43

a=;
b=;
min(a,b)

huaijuliu 发表于 2010-12-9 16:54

cboboc 发表于 2010-12-9 08:36 static/image/common/back.gif
回复 2 # huaijuliu 的帖子

我想再请问一下,我这样做为什么不对呢?


c=b这句话意味着c的所有元素都等于b中元素
应改为
c(i)=b(i)
下同

gczhang 发表于 2010-12-10 15:33

cboboc 发表于 2010-12-9 08:36 static/image/common/back.gif
回复 2 # huaijuliu 的帖子

我想再请问一下,我这样做为什么不对呢?



a=;
b=;
c=zeros(1,5);
for i=1:5
if a(i)<b(i)
       c(i)=a(i);
else
      c(i)=b(i);
end
end

cboboc 发表于 2010-12-13 10:31

huaijuliu 发表于 2010-12-9 16:54 static/image/common/back.gif
c=b这句话意味着c的所有元素都等于b中元素
应改为
c(i)=b(i)


恩明白了谢谢呵呵

cboboc 发表于 2010-12-13 10:45

yufeng 发表于 2010-12-9 09:43 static/image/common/back.gif
a=;
b=;
min(a,b)

谢谢,这个看似简单的小问题,一下子有好多种算法!呵呵太感谢了

zhouyang664 发表于 2010-12-13 22:54

本帖最后由 zhouyang664 于 2010-12-13 22:54 编辑

这个问题用sort就完全可以啊!
>> a=;b=;
>> c = sort(,2)
c =
   1   2
   1   3
   5   6
   2   6
   5   8
>> min = c(: , 1)' , max = c(: , 2)'
min =
   1   1   5   2   5
max =
   2   3   6   6   8

ChaChing 发表于 2010-12-13 23:59

回复 11 # zhouyang664 的帖子

稍微修改下
a=;b=;
c = sort()
页: [1]
查看完整版本: 两个向量对应位置处元素比较重组问题