gpt4 book ai didi

arrays - 如何在 Matlab 中使用元胞数组?

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:13 25 4
gpt4 key购买 nike

我是 Matlab 的初学者,遇到过元胞数组,但我不确定如何使用索引。

我通过执行以下操作创建了一个包含 5 行和 3 列的元胞数组:

A = cell(5,3);

现在是否可以像普通数组的嵌套 for 循环一样先按行然后按列遍历元胞数组?

    for i=1:5
for j=1:3
A{i,j} = {"random"} //random numbers/ string etc
end
end

最佳答案

对于元胞数组,您有两种索引方法,即圆括号(即(...))和大括号(即 {...}).

让我们创建一个元胞数组以用于示例:

A = {3,   9,     'a'; 
'B', [2,4], 0};

使用括号建立索引返回单元格数组的一部分作为单元格数组。例如

A(:,3)

返回一个 2×1 元胞数组

ans =

'a'
0

例如,使用大括号编制索引会返回该单元格的CONTENTS

A{1,3}

返回单个字符

ans =

a

您也可以使用括号返回单个单元格,但它仍然是一个单元格。您还可以使用大括号返回多个单元格,但这些返回为 comma separated lists ,这有点高级。

当分配给一个单元格时,非常相似的概念适用。如果您使用括号进行分配,则必须分配适当大小的单元格矩阵:

A(:,1) = {1,1}

如果您使用括号分配单个值,那么您必须将它放在一个单元格中(即 A(1) = 2 会给您一个错误,因此您必须执行 A( 1) = {2})。所以最好使用大括号,因为这样你会直接影响单元格的内容。所以去是对的

A{1} = 2

这等同于 A(1) = {2}。请注意,您所做的 A{1} = {2} 不会给出错误,但它会在您的单元格中嵌套一个单元格,这不太可能是您想要的。

最后,如果您的一个单元格内有一个矩阵,则 Matlab 允许您直接索引到该矩阵,如下所示:

A{2,2}(1)

ans =

3

关于arrays - 如何在 Matlab 中使用元胞数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25620636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com