【问题标题】:How to replace a line from another file MATLAB如何替换另一个文件中的一行 MATLAB
【发布时间】:2017-09-17 09:50:22
【问题描述】:

我有这样的单元格数组:

M =
 [002]  [A] [0] [0]   [0]     [381]
 [002]  [B] [0] [0]   [0]     [166]
 [002]  [C] [0] [0]   [0]     [136]
 [002]  [D] [0] [0]   [0]     [880]
 [003]  [E] [0] [0]   [0]     [839]
 [003]  [F] [0] [0]   [0]     [156]
 [003]  [G] [0] [0]   [0]     [789]
 [003]  [H] [0] [0]   [0]     [676]
 [003]  [I] [0] [0]   [0]     [778]
 [004]  [J] [0] [0]   [0]     [787]

我有一个输入文件,其中包含:

[X] [4] [3]  [E]      [839]
[Y] [7] [4]  [F]      [156]
[Z] [8] [1]  [I]      [778]

我希望第二个文件([E], [F], and [I]) 中的第三列作为索引以查找 M 中的值,然后替换 M 中的行(但没有更改 M 的第一列),所以我得到这样的新矩阵:

N =
 [002]  [A] [0] [0]   [0]     [381]
 [002]  [B] [0] [0]   [0]     [166]
 [002]  [C] [0] [0]   [0]     [136]
 [002]  [D] [0] [0]   [0]     [880]
 [003]  [X] [4] [3]   [E]     [839]
 [003]  [Y] [7] [4]   [F]     [156]
 [003]  [G] [0] [0]   [0]     [789]
 [003]  [H] [0] [0]   [0]     [676]
 [003]  [Z] [8] [1]   [I]     [778]
 [004]  [J] [0] [0]   [0]     [787]

我该怎么做?

【问题讨论】:

  • [E]、[F] 和 [I] 在第 4 列;不是第三

标签: arrays matlab cell


【解决方案1】:

使用ismember

N = M;                                     %Making a copy of M
N(ismember(M(:,2),inp(:,4)),2:end) = inp;  %Replacing with desired terms from input

阅读:Access Data in Cell Array

【讨论】:

  • 非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2018-08-05
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2020-01-09
  • 2011-08-12
  • 1970-01-01
相关资源
最近更新 更多