use*_*723 3 arrays matlab cell
我是使用Matlab的初学者,遇到了单元格数组,但我不确定如何使用索引.
我通过执行以下操作创建了一个包含5行和3列的单元数组:
A = cell(5,3);
Run Code Online (Sandbox Code Playgroud)
现在是否可以先按行遍历单元格数组,然后再像for常规数组的嵌套循环一样?
for i=1:5
for j=1:3
A{i,j} = {"random"} //random numbers/ string etc
end
end
Run Code Online (Sandbox Code Playgroud)
对于单元格数组,您有两种索引方法,即括号(ie (...))和大括号(即{...}).
让我们创建一个单元格数组用于示例:
A = {3, 9, 'a';
'B', [2,4], 0};
Run Code Online (Sandbox Code Playgroud)
使用paranthesis进行索引会返回单元阵列AS CELL ARRAY的一部分.例如
A(:,3)
Run Code Online (Sandbox Code Playgroud)
返回一个2乘1的单元格数组
ans =
'a'
0
Run Code Online (Sandbox Code Playgroud)
例如,使用大括号进行索引会返回该单元格的CONTENTS
A{1,3}
Run Code Online (Sandbox Code Playgroud)
返回一个字符
ans =
a
Run Code Online (Sandbox Code Playgroud)
您也可以使用括号返回单个单元格,但它仍然是一个单元格.您还可以使用大括号返回多个单元格,但这些单元格以逗号分隔的列表返回,这有点高级.
分配给单元格时,适用非常相似的概念.如果使用括号分配,则必须指定适当大小的单元格矩阵:
A(:,1) = {1,1}
Run Code Online (Sandbox Code Playgroud)
如果你使用括号分配单个值,那么你必须把它放在一个单元格中(即A(1) = 2会给你一个错误,所以你必须这样做A(1) = {2}).因此,最好使用大括号,因为这会直接影响单元格的内容.所以这是正确的
A{1} = 2
Run Code Online (Sandbox Code Playgroud)
这相当于A(1) = {2}.请注意,A {1} = {2},这是你所做的,不会给出错误,但是什么是在你的单元格中嵌入一个单元格,这不太可能是你所追求的.
最后,如果你的一个单元格中有一个矩阵,那么Matlab允许你直接索引到那个矩阵,如下所示:
A{2,2}(1)
ans =
3
Run Code Online (Sandbox Code Playgroud)