如何在MATLAB中用另一个矩阵替换矩阵的元素?
例如:假设我们有一个矩阵A,其中
A=[1 0 0; 0 1 0; 1 0 1]
我想替换所有的
J=[1 0 0; 0 1 0; 0 0 1]
和零
K=[0 0 0; 0 0 0; 0 0 0]
这样我就可以获得9x9矩阵.那么我们将如何在MATLAB中编写它
谢谢
听起来你可能想看看kronecker张量产品.这不是一般情况,但这个想法应该适合你想要的
>> kron(A==1,J)+kron(A==0,K)
ans =
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
对于示例,它将简化为更简单的命令:
>> kron(A,J)
ans =
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |