【问题标题】:How to replace elements of a matrix by an another matrix in MATLAB?如何用MATLAB中的另一个矩阵替换矩阵的元素?
【发布时间】:2012-03-21 01:55:41
【问题描述】:

如何在 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 中对其进行编码

谢谢

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

    听起来您可能想看看kronecker tensor product。这不是一般情况,但这个想法应该适合你想要的

    >> 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
    

    对于示例情况,这将简化为更简单的命令:

    >> 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
    

    【讨论】:

    • 我从没想过像这样使用kron() - 尽管我已经经常使用我自己的代码。非常巧妙!拿 10 个极客积分!
    • 感谢磨坊。真的很有帮助。
    【解决方案2】:

    你可以这样做:

    A2=imresize(A,size(A).*size(J),'nearest');
    J2=repmat(J,size(A));
    K2=repmat(K,size(A));
    A2(A2==1)=J2(A2==1);
    A2(A2==0)=K2(A2==0)
    

    【讨论】:

    • 谢谢奥利。感谢您的关注。
    猜你喜欢
    • 2013-03-14
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2012-11-11
    相关资源
    最近更新 更多