24小时热门版块排行榜    

查看: 109  |  回复: 7
当前主题已经存档。
【悬赏金币】回答本帖问题,作者happydan将赠送您 1 个金币
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

happydan

金虫 (小有名气)

[求助] matlab,数列组合问题!

matlab,数列组合问题!请问,如果a=[1,2,3,4],我想得到所有里面2个元素的排列!如12,13,14,21,23,24,31,32,34,41,42,43。
谢谢,在线等!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

happydan

金虫 (小有名气)

是怎样得到任意两个元素之间的组合,不是排列

谢谢
3楼2007-12-11 09:30:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

xiqizhizi

木虫 (正式写手)

我想可能你说的不太明白,因为我没读懂你的题目!
2楼2007-12-04 18:40:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

happydan

金虫 (小有名气)


楼兰少女(金币+1,VIP+0):楼主感谢
我的编程为 syms m1 m2;
m_M=[m1+2*m2,0];m_X=[m1,m2];
>> c=combntns(m_M,2);MM_cc=c(:,1)*c(:,2);
a=combntns(m_X,2);MM_aa=a(:,1)*a(:,2);

运行结果为Warning: Imaginary parts of complex arguments ignored
> In combntns at 38
Warning: Imaginary parts of complex arguments ignored
> In combntns at 38
MM_aa =

(1/2*m1+1/2*conj(m1))*(1/2*m2+1/2*conj(m2))

就是数先排列,再乘一下!现在的问题是我的都是实数,能把变量设为实数运算么?
4楼2007-12-11 09:33:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

langxp

银虫 (初入文坛)


楼兰少女(金币+1,VIP+0):楼主感谢
程序代码:
a = [1 2 3 4];
b = [];
c = []
n = size(a,2);
for i=1:n
    for j=i+1:n
        b = [b;a(i) a(j)];
    end
end
b
for i=1:n
    for j=i+1:i+n-1
        if mod(j,n)==0
            c = [c; a(i) a(n)];
        else
            c = [c;a(i) a(mod(j,n))];
        end
    end
end
c

输出结果为:
b =

     1     2
     1     3
     1     4
     2     3
     2     4
     3     4


c =

     1     2
     1     3
     1     4
     2     3
     2     4
     2     1
     3     4
     3     1
     3     2
     4     1
     4     2
     4     3

b为组合,c为排列
5楼2007-12-12 08:09:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见