所以我有一个向量 X 的单元格数组:
octave:149> X
X =
{
[1,1] =
1 17 20
[2,1] =
5 20 22 27
[3,1] =
2 17 18 21
}
我创建一个空向量 Y:
octave:150> Y = []
Y = [](0x0)
然后我用“Y = unique([Y x])”对 X 的每个值调用一个匿名函数:
octave:151> cellfun(@(x)(Y = unique([Y x])),X,'UniformOutput',false)
ans =
{
[1,1] =
1 17 20
[2,1] =
1 5 17 20 22 27
[3,1] =
1 2 5 17 18 20 21 22 27
}
好的,但现在 Y 仍然是空的:
octave:152> Y
Y = [](0x0)
octave:153>
显然,匿名函数中的 Y 名称为其自己的 Y 版本创建并绑定了一个新存储。
Octave/MATLAB 中的存储和名称解析规则是什么?何时为变量分配存储空间?什么时候两个相同的名称绑定到同一个变量?(有什么方法可以影响上述匿名函数中 Y 的值吗?)