gpt4 book ai didi

Matlab:将行添加到单元格

转载 作者:行者123 更新时间:2023-12-01 22:36:28 26 4
gpt4 key购买 nike

我想创建一个元胞数组,其中每一行都是一个字符串数组。行的长度不同。假设我将这些行本身存储为单元格,例如:

row1 = {'foo1', 'foo2', 'foo3'}
row2 = {'foo1', 'foo2', 'foo3', 'foo4'}
row3 = {'foo1', 'foo2'}

如何将这些连接到一个单元格中?像这样:

cell = row1
cell = [cell; row2]
cell = [cell; row3]

但这给了我一个错误:

Error using vertcat. Dimensions of matrices being concatenated are not consistent.

我想在一个循环中执行此操作,以便在每次交互时,将另一行添加到单元格中。

我该怎么做?谢谢。

最佳答案

你不能使用

c = row1;
c = [cell; row2]

因为两行的列数不匹配。在元胞数组中,所有行的列数必须相同。出于同样的原因,您也不能使用它(它是等效的):

c = row1;
c(end+1,:) = row2

如果您需要不同数量的“每行中的列”(或“锯齿状数组”),您需要两个级别:对行使用(第一级)元胞数组,并在每行为列存储一个(二级)元胞数组。例如:

c = {row1};
c = [c; {row2}]; %// or c(end+1) = {row2};

现在 c 是元胞数组的元胞数组:

c = 
{1x3 cell}
{1x4 cell}

您可以像这样使用“链式”索引:例如,c{2}{4} 给出字符串 'foo4'

关于Matlab:将行添加到单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22463642/

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