【问题标题】:Replace values in one column in multiple cells in array替换数组中多个单元格中一列中的值
【发布时间】:2016-06-05 05:51:29
【问题描述】:

我正在尝试用另一个单元格数组中每个单元格的第 5 列替换单元格数组中每个单元格的第 5 列。我创建了以下函数,该函数执行此操作,但还将所有其他列中的值替换为 0。如何在不删除其他列中的所有其他值的情况下执行此操作。功能是:

function [X]=replace_cells(cell) 
X={};
for i=1:length(cell)
   X{i}(:,[5])=cell{i}(:,[5]);
end

结束

【问题讨论】:

  • X 已初始化为空数组。您只是将 cell 的每个单元格中的第 5 列复制到 X 中,因此其他值只能0。我也强烈建议不要使用cell 作为变量名。

标签: arrays matlab replace


【解决方案1】:

您的函数不会替换列,因为该函数创建 X 而它应该是一个输入,试试这个函数,

function X = replace_cells(c,X) 
for i = 1 : length(c)
   X{i}(:,5)=c{i}(:,5);
end

cell 是一个 Matlab 函数,请勿将其用作变量的名称。

【讨论】:

  • 这并不像你说的那样做。参数(如果它们不是句柄对象)被复制到函数的工作区,这意味着您的函数将更改副本,而不是原始的。如果你想修复它,你应该像这样声明你的函数function X=replace_cells(c,X)
  • 可能缺少返回参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
  • 2021-06-01
  • 2017-01-26
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
相关资源
最近更新 更多