从2D逻辑矩阵改造矩阵(无需重新整形)

时间:2017-10-14 15:05:03

标签: matlab matrix boolean

我尝试从逻辑参数重建矩阵,如下例所示:

a=rand(2,5)
b=rand(2,5)
c=a>b

a(:,c)=b(:,c)

但是我收到Index exceeds matrix dimension错误。这可以在不预先重新整形矩阵的情况下完成吗?

1 个答案:

答案 0 :(得分:0)

如果您想将ab之间的最小值复制到每个条目中,请尝试:

a=rand(2,5);
b=rand(2,5);


c = find(a>b); % c contains the position of value of the greatest val
a(c)=b(c)  % removes greates value copying a smaller value from b

如果要复制最大值,请修改创建变量c的语句。

Index exceeds matrix dimensions是由于您尝试将列表:和矩阵c用作矩阵维度而导致的。 Find创建一个满足所需关系的值列表,可用于调用特定值。