请教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],请大家赐教,不胜感激!!
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中分组排列问题的主要内容,如果未能解决你的问题,请参考以下文章