怎样用MATLAB实现,从矩阵每行选取一个数字,然后将取出来的数字相加求和的所有可能组合例如矩阵C11 C12 C13C21 C22 C23C31 C32 C33求和 D1=C11+C21+C31D2=C11+C21+C33D3=C11+C21+C33D4=C11+C22+C31D5=C11+C21+C32D6=C11+C21+C

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 00:26:31
怎样用MATLAB实现,从矩阵每行选取一个数字,然后将取出来的数字相加求和的所有可能组合例如矩阵C11 C12 C13C21 C22 C23C31 C32 C33求和 D1=C11+C21+C31D2=C11+C21+C33D3=C11+C21+C33D4=C11+C22+C31D5=C11+C21+C32D6=C11+C21+C

怎样用MATLAB实现,从矩阵每行选取一个数字,然后将取出来的数字相加求和的所有可能组合例如矩阵C11 C12 C13C21 C22 C23C31 C32 C33求和 D1=C11+C21+C31D2=C11+C21+C33D3=C11+C21+C33D4=C11+C22+C31D5=C11+C21+C32D6=C11+C21+C
怎样用MATLAB实现,从矩阵每行选取一个数字,然后将取出来的数字相加求和的所有可能组合
例如矩阵
C11 C12 C13
C21 C22 C23
C31 C32 C33
求和
D1=C11+C21+C31
D2=C11+C21+C33
D3=C11+C21+C33
D4=C11+C22+C31
D5=C11+C21+C32
D6=C11+C21+C33
...
D27=C13+C23+C33
最后D矩阵有27个数,是从每行任意取一个数相加求和的所有可能的情况
如果C矩阵有n行k列的话,怎么用MATLAB来实现这个算法呢?
求和那里写的有点错
D1=C11+C21+C31
D2=C11+C21+C32
D3=C11+C21+C33
D4=C11+C22+C31
D5=C11+C22+C32
D6=C11+C22+C33
...
D27=C13+C23+C33

怎样用MATLAB实现,从矩阵每行选取一个数字,然后将取出来的数字相加求和的所有可能组合例如矩阵C11 C12 C13C21 C22 C23C31 C32 C33求和 D1=C11+C21+C31D2=C11+C21+C33D3=C11+C21+C33D4=C11+C22+C31D5=C11+C21+C32D6=C11+C21+C
是用枚举的方法来求所有可能的排列组合吗?那样的话n行k列就有k的n次方种可能.
写个脚本随机生成一个矩阵,然后再求和就好了:
clc
clear
n = 4;
k = 2;
c = randint(n,k,10) % 随机生成一个n行k列的不大于10的整数矩阵
d = zeros(n,k^n);
for i = 1:n
    d(i,:) = reshape(repmat(c(i,:),[k^(n-i),k^(i-1)]),1,k^n); % 把元素按行排整齐:-)
end
disp('d = '),disp(d); % 待求和的矩阵d
d_sum = sum(d) % 求和后的结果