所以我有一个课程,我们称之为MyClass
,它有3个属性,value
,valueMinus1
和valuePlus1
。这两个属性将相邻值保存在类数组中。有没有一种更新这些的好方法(它将在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
但我觉得必须有更好,更聪明,更有效的方法来做到这一点。
答案 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
这会回答你的问题吗?