请教matlab中分组排列问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教matlab中分组排列问题相关的知识,希望对你有一定的参考价值。

A1=[0:N1];A2=[0:N2];...Am=[0:Nm];其中m,Nm均为不确定的数(靠用户输入确定),如何得到A1—Am的全排列?
补充:如A1=[1:7];A2=[1:8];A3=[1:5];想得到以下排列:
第一个数从A1中产生,第一个数从A2中产生,第一个数从A3中产生。
如:111 112 113 114 115 ...... 781 782 783 784 785。共有7*8*5种组合方式。其中m,Nm均为不确定的数(靠用户输入确定),如何得到A1—Am的全排列?
补充:如A1=[1:7];A2=[1:8];A3=[1:5];想得到以下排列:
第一个数从A1中产生,第一个数从A2中产生,第一个数从A3中产生,形式如A1A2A3。
如:111 112 113 114 115 ...... 781 782 783 784 785。共有7*8*5种组合方式。
对于已知m和Nm的情况,如m=3,N1=7,N2=8,N3=5,我的算法如下:
result=[ ];
for A1=1:7
for A2=1:8
for A3=1:5
result=[result;[A1 A2 A3]];
end
end
end
result
补充:如A1=[1:7];A2=[1:8];A3=[1:5];想得到以下排列:
第一个数从A1中产生,第一个数从A2中产生,第一个数从A3中产生,形式如A1A2A3。
如:111 112 113 114 115 ...... 781 782 783 784 785。共有7*8*5种组合方式。
对于已知m和Nm的情况,如m=3,N1=7,N2=8,N3=5,我的算法如下:
result=[ ];
for A1=1:7
for A2=1:8
for A3=1:5
result=[result;[A1 A2 A3]];
end
end
end
result
问题是:如果事前不确定m以及Am情况,怎么设计一个通用算法?难度在于循环嵌套次数如何控制以及无法确定[A1 A2 A3],请大家赐教,不胜感激!!

参考技术A 请领导检查工作

function y = quanpailie(m)

N = zeros(m + 1,1);
for j = 1 : m
N(j) = input('Please enter Nm in the order: ');
end
N(m + 1) = 1;

y = zeros(prod(N), m);
for j = 1 : m
nrep = prod(N(j + 1 : m + 1));
unit = ones(nrep, N(j));
for k = 1 : N(j)
unit(:, k) = k * unit(:, k);
end
y(:, j) = repmat(unit(:), [prod(N) / (nrep * N(j)), 1]);
end

运行代码如下:
y = quanpailie(3)
Please enter Nm in the order: 7
Please enter Nm in the order: 8
Please enter Nm in the order: 5本回答被提问者和网友采纳

请教关于Matlab中ikine函数

请教关于Matlab中ikine函数
为逆运动学有多解性问题,所以qi=ikine(p560,T)解出来的本应该是多解,但其实上只列出了其中一个,不信你在上面的基础上再试试Ti=fkine(p560,qi),得出的结果仍是之前的T一样,所以我觉得这应该是这个工具箱ikine函数的不足之处有待改进!

顺一门有百福 平安二字值千金 万象更新
参考技术A 按D-H方法,再根据机器人实际的运动范围,可以确定只有唯一一个解。

以上是关于请教matlab中分组排列问题的主要内容,如果未能解决你的问题,请参考以下文章

请教各位大牛关于mysql按时间段分组查询的问题。

matlab 随机分组,谢谢

通过将数字分组到一个范围内在 matlab / octave 中绘图

sql中group by 是啥意思啊?请教谢谢

如何对按顺序排列的相同值进行分组

如何按 2 列分组,但按 count() 降序排列