替换对应矩阵中的子矩阵(MATLAB)
5次浏览(过去30天)
显示旧的注释
亲爱的
我有这个项目
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
我怎么能以一般的方式来编程呢
米
请价值!
0评论
接受的答案
沃斯
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);