matlab 矩阵矩阵元素替换有一行矩阵w=[1,0,1,1...,0],里面有n个1元素,其他元素全为0.同时还有行矩阵p=[5,6,2...7],元素个数为n,就是w里面1的个数.现在想把w矩阵里元素为1的位置替换成p矩阵的元素,p

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 21:58:11

matlab 矩阵矩阵元素替换有一行矩阵w=[1,0,1,1...,0],里面有n个1元素,其他元素全为0.同时还有行矩阵p=[5,6,2...7],元素个数为n,就是w里面1的个数.现在想把w矩阵里元素为1的位置替换成p矩阵的元素,p
matlab 矩阵矩阵元素替换
有一行矩阵w=[1,0,1,1...,0],里面有n个1元素,其他元素全为0.同时还有行矩阵p=[5,6,2...7],元素个数为n,就是w里面1的个数.现在想把w矩阵里元素为1的位置替换成p矩阵的元素,p的第一列替换第一个1,第二列元素替换第二个1,以此类推.

matlab 矩阵矩阵元素替换有一行矩阵w=[1,0,1,1...,0],里面有n个1元素,其他元素全为0.同时还有行矩阵p=[5,6,2...7],元素个数为n,就是w里面1的个数.现在想把w矩阵里元素为1的位置替换成p矩阵的元素,p
首先编写m函数如下:
function out = replace(w,p)
temp_h=length(w);
l=1;
for k=1:temp_h
    if w(k)==1
        out(k)=p(l);
        l=l+1;
    else
        w(k)=0;
    end
end
end
然后将该m函数放到matlab工作目录下,或改变matlab工作目录到该函数的目录.
在命令空间输入如下命令:
>> m=[0,1,1,0,1];
>> p=[3,5,9];
>> a=replace(m,p)

a =

     0     3     5     0     9
看到了吧,a就是m矩阵中将1对应的用p的元素替换后的矩阵.