索引的主要目的是获取值。在MATLAB中,对于单元数组,有内容索引(
除了这个用法,还有其他高级用法吗?比如将其用作指针并将其传递给函数?
{}
),因此单元索引(()
)仅用于从单元数组中选择子集,是吗?除了这个用法,还有其他高级用法吗?比如将其用作指针并将其传递给函数?
{}
),因此单元索引(()
)仅用于从单元数组中选择子集,是吗?>> a=x(2)
a =
[2]
>> class(a)
ans =
cell
>> b=x{2}
b =
2
>> class(b)
ans =
double
>> a=x(2:3)
a =
[2] [3]
>> b=x{2:3}
b =
2
逗号分隔列表类似于具有两个返回值的函数。您只需要一个值,只会分配一个值。第二个值将丢失。您也可以使用此方法一次性将多个元素分配给单独的列表:
>> [a,b]=x{2:3} %old MATLAB versions require deal here
a =
2
b =
3
foo(a,b,c,d,e,f)
foo(a{1},a{2},a{3},a{4},a{5},a{6})
另外,您也可以使用逗号分隔的列表调用函数。假设a有6个元素,则此行与前面的完全等效:
foo(a{:}) %The : is a short cut for 1:end, index the first to the last element
M=myMatrixOperation(M,parameter,parameter2)
您输入数据并返回它的地方。
{x{2:3}}
替换x(2:3)
。除了节省一些字符外,对于具有相同行为的单元格和矩阵,使用()索引可以简化可以处理两者的函数。 - Daniel{x{...}}
替换x(...)
索引。例如,x(:,1:3)
无法以其他方式完成。这两种索引形式是不同的,您需要同时使用它们来正确地使用单元数组。 - Cris Luengo