Matlab或R:按顺序用另一个矩阵中的值替换矩阵中的元素

时间:2013-04-30 17:27:46

标签: r matlab

我在Matlab或R(最好是R)中有一个问题需要解决。

想象一下,我有一个包含10个元素的向量A.

我还有一个包含30个元素的向量B,其中10个有值' x'。

现在,我想替换所有' x'在B中,按照A 中建立的顺序从A,中取得相应的值。一旦获得A中的值,下一个值就可以在下一个' x'在B中找到了。

请注意,A和B的大小不同,它是' x'的数量。细胞与A的大小一致。

我尝试过不同的方法。关于如何编程的任何建议?

2 个答案:

答案 0 :(得分:2)

只要xB个条目的数量与A的长度相匹配,就可以满足您的要求:

B[B=='x'] <- A

(应该清楚这是R解决方案。)

答案 1 :(得分:2)

MATLAB解决方案

在MATLAB中,它非常简单,使用逻辑索引:

B(B == 'x') = A;