永发信息网

matlab生成特殊矩阵

答案:1  悬赏:0  手机版
解决时间 2021-04-23 04:51
  • 提问者网友:我的未来我做主
  • 2021-04-22 23:04
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个,求解编程生成所有这样的矩阵序列并输出显示
最佳答案
  • 五星知识达人网友:动情书生
  • 2021-04-22 23:15

代码如下,复制粘贴到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,是该程序的核心所在


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯