matlab多个长度为3的数组,个数不确定,怎么从每一个数组中取一个数字,得到全排列
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 15:16:28
matlab多个长度为3的数组,个数不确定,怎么从每一个数组中取一个数字,得到全排列
假如有3个数组,分别为a b c.其全排列用matlab可以计算出,方法为
[a b c]=ndgrid(a,b,c)
[a(:) b(:) c(:)]
我的数组个数是不确定的,是随着另外的变量发生变化的,
假如有3个数组,分别为a b c.其全排列用matlab可以计算出,方法为
[a b c]=ndgrid(a,b,c)
[a(:) b(:) c(:)]
我的数组个数是不确定的,是随着另外的变量发生变化的,
这个不叫全排列吧,应该叫全组合.
编了个函数给你:
function C = allcombs(varargin)
n = nargin;
if n < 2, error('Insufficient input'); end
s = '[x1';
for i=2:n
s = [s sprintf(',x%i',i)];
end
s = [s ']=ndgrid(varargin{:});'];
eval(s);
s = '[x1(:)';
for i=2:n
s = [s sprintf(',x%i(:)',i)];
end
s = [s ']'];
C = eval(s);
调用示例:
a = [1 2];
b = [3 4 5];
c = [6 7];
C = allcombs(a,b,c)
运行结果
C =
1 3 6
2 3 6
1 4 6
2 4 6
1 5 6
2 5 6
1 3 7
2 3 7
1 4 7
2 4 7
1 5 7
2 5 7
编了个函数给你:
function C = allcombs(varargin)
n = nargin;
if n < 2, error('Insufficient input'); end
s = '[x1';
for i=2:n
s = [s sprintf(',x%i',i)];
end
s = [s ']=ndgrid(varargin{:});'];
eval(s);
s = '[x1(:)';
for i=2:n
s = [s sprintf(',x%i(:)',i)];
end
s = [s ']'];
C = eval(s);
调用示例:
a = [1 2];
b = [3 4 5];
c = [6 7];
C = allcombs(a,b,c)
运行结果
C =
1 3 6
2 3 6
1 4 6
2 4 6
1 5 6
2 5 6
1 3 7
2 3 7
1 4 7
2 4 7
1 5 7
2 5 7
matlab多个长度为3的数组,个数不确定,怎么从每一个数组中取一个数字,得到全排列
matlab 列举从X数组中选出m个元素进行全排列的结果
matlab中cat获取高维数组,怎样循环表示每一个数组的行列
Matlab中怎么返回一个数组中元素的个数
matlab循环得到n个数组,怎样把这些数组,在循环的过程中,n个数组赋为一个矩阵即合为一个矩阵?在循环中
c语言 有3组数组,输入10个数字为一组,再从这3个数组中对比找出有连续数字的哪组数,显示出来.
如何在matlab中得到一个小数小数点后每一位上的数?输出为一个数组.
matlab如果我要取2个数组中元素循环相减后取绝对值最小的个,怎么编程
定义一个整型数组 长度为100 随即一个 1-100的数字 添加到整型数组中 要求数组中的数据不能重复
用 new 运算符为一个包含 20 个整数的数组分配内存,输入若干个值到数组中,分别统计其中正数和负数的个数
几道VB题1编程题:.从键盘上输入20个数放入一个一维数组中,并输入数组各元素的值,然后将数组中20个元素的最大值和最小
在C语言中,如何定义长度不确定的数组