我在matlab的树中使用递归调用,函数的基本结构在这里:
function recursion(tree, targetedFeatures)
if (some conditions fulfilled)
return;
end
for i = 1:1:size(targetedFeatures,2)
.....
.....
if (some conditions that using index i is true)
targetedFeatures(1,i) = 1;
end
end
if(tree has child nodes)
recursion(tree.child(j).targetedFeatures)
end
end
树的结构是这样的:
root
/ | \
/ | \
/ | \
leaf1 leaf2 leaf3
函数递归的输入参数是一个名为targetedFeatures的向量,假设它的初始值为[0 0 0],在访问leaf1的过程中,向量变为[1 0 0],但是在访问leaf2时,targetedFeature改回 [0 0 0]。
我怀疑这是因为 matlab 中的向量不喜欢在其他编程语言中引用对象?
我怎样才能避免这个问题?谢谢。