matlab在类数组中获取相邻参数

时间:2014-08-20 16:41:20

标签: arrays matlab class

所以我有一个课程,我们称之为MyClass,它有3个属性,valuevalueMinus1valuePlus1。这两个属性将相邻值保存在类数组中。有没有一种更新这些的好方法(它将在value更改时迭代完成)。有一个简单的方法:

%//initialize the class array
class_array = MyClass.empty(n,0);
for i=1:n
  class_array(i) = MyClass(i); % //just put in the index at value
end

%//now update the valuePlus1 and valueMinus1 properties
for i=1:n
  if i==1
    class_array(i).valueMinus1 = class_array(end).value;
  else
    class_array(i).valueMinus1= class_array(i-1).value
  end

  if i==n
    class_array(i).valuePlus1 = class_array(1).value
  else
    class_array(i).valuePlus1 = class_array(i+1).value
  end

但我觉得必须有更好,更聪明,更有效的方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

您可以使用模数运算符代替if else语句。这将简化它。

for i=1:n
    class_array(i).valueMinus1= class_array(mod(i-2,n)+1).value
    class_array(i).valuePlus1 = class_array(mod(i,n)+1).value
end

这会回答你的问题吗?