替换对应矩阵中的子矩阵(MATLAB)

5次浏览(过去30天)
高速
高速 2022年3月10日
评论道: 沃斯 2022年3月10日
亲爱的
我有这个项目 m = 4 例如:
m = 4;
P =汉克尔(1:m m: 1:1);
一个= 0 (m - 1, m - 1, m - 2);
(:: 1) =眼睛(m - 1);
k = 2: m - 1
(:,:, k) = circshift ((:,:, k - 1), 1, 2);
点= 0 (m - 1);
结束
对应矩阵 P 是:
P =
1 2 3 4
2 3 4 3
3 4 3 2
4 3 2 1
其中子矩阵 一个 哪个单位矩阵被认为是单位矩阵 ' 1 ' 在矩阵中 P
另外两个子矩阵是a的移位 ' 2 ' 而且 “3” 分别在 P
被认为是 “4” P
我想要替换 '1' '2' '3' 而且 “4” P 和它们对应的子矩阵。结果必须是:
P =
1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 1 0 0 0 0 0
0 0 1 1 0 0 0 1 0 0 0 0
0 1 0 0 0 1 0 0 0 0 1
0 0 1 1 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 1 0 0 0 1
0 1 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 1 1 0 0 0 0 1
我怎么能以一般的方式来编程呢 请价值!

接受的答案

沃斯
沃斯 2022年3月10日
编辑:沃斯 2022年3月10日
m = 4;
P =汉克尔(1:m m: 1:1);
A = 0 (m-1,m-1,m);
A (:,:,1) = eye(m-1);
K = 2:m-1
A (:,:,k) = circshift(A (:,:,k-1),1,2);
结束
A (:,:,m) = 0 (m-1);
= 0 (m*(m-1));
Ii = 1:m
Jj = 1:m
P_new ((m - 1) * (ii-1) + (1: m - 1), (m - 1) * (jj-1) + (1: m - 1)) = a (:: P (ii, jj));
结束
结束
disp (P_new);
1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1

更多答案(0)

类别

了解更多线性代数帮助中心而且文件交换

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!