matlab生成特殊矩阵我想用matlab编写程序,生成所有4*4的各行各列都只有一个1元素,但不重复,其他均为0的矩阵,比如1 0 0 00 1 0 00 0 1 00 0 0 1 和 1 0 0 00 0 1 00 1 0 00 0 0 1 这样的矩阵应该有24个,求解编
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 21:15:23
matlab生成特殊矩阵我想用matlab编写程序,生成所有4*4的各行各列都只有一个1元素,但不重复,其他均为0的矩阵,比如1 0 0 00 1 0 00 0 1 00 0 0 1 和 1 0 0 00 0 1 00 1 0 00 0 0 1 这样的矩阵应该有24个,求解编
matlab生成特殊矩阵
我想用matlab编写程序,生成所有4*4的各行各列都只有一个1元素,但不重复,其他均为0的矩阵,比如
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
和
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
这样的矩阵应该有24个,求解编程生成所有这样的矩阵序列并输出显示
matlab生成特殊矩阵我想用matlab编写程序,生成所有4*4的各行各列都只有一个1元素,但不重复,其他均为0的矩阵,比如1 0 0 00 1 0 00 0 1 00 0 0 1 和 1 0 0 00 0 1 00 1 0 00 0 0 1 这样的矩阵应该有24个,求解编
代码如下,复制粘贴到editor里运行即可:
clear
clc
%生成24个矩阵
p = perms([1 2 3 4]); %给出4*4矩阵中1在每行中列位置的排列组合
n = size(p,1);
for i = 1:n
matrix = zeros(4);
index = [p(i,1) p(i,2)+4 p(i,3)+8 p(i,4)+12];
matrix(index) = 1;
M{i} = matrix; %M为cell类型,存放了24个cell变量,每个变量是一个矩阵
end
%显示24个矩阵
for i = 1:n
disp(M{i});
end
注意:
“p = perms([1 2 3 4]); %给出4*4矩阵中1在每行中列位置的排列组合”
利用了matlab内置的排列组合函数perms,是该程序的核心所在