gpt4 book ai didi

matlab - 注释某些行时 Matlab 中的单元格数组串联错误

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

我正在尝试在 Matlab 中创建元胞数组的元胞数组。我目前拥有的代码完全按照我的需要工作。问题基本上是,如果我注释掉任何不是第一行、中间行或最后一行的行,我会收到错误消息:

错误使用==> vertcatCAT 参数尺寸不一致。

我已经研究了一段时间了,我发现另一个人有完全相同的问题......

http://www.programmersheaven.com/mb/ctocplusplustomatlab/424275/424275/mysterious-reason-for-cat-error-when-defining-cell-array/

...但是,这个帖子没有解决方案。

这是我的代码(4 代表变量可能持有的整数值):

cell = {{4} ...
{4} ...
{4} ...
{4} ...
{} ...
{4} ...
{4} ...
{4} ...
{4} ...
{4 4 4 4} ...
{4} ...
{4} ...
{4} ...
{4} ...
{4} ...
{4 4 4 4} ...
{5} ...
{} ...
{4} ...
{4} ...
{} ...
{} ...
{} ...
{} ...
{} ...
{} ...
{} ...
{} ...
{} ...
};

(我无法让它在这里看起来完全一样......在我的版本中,代码在每个省略号之后移动到一个新行)

假设我注释掉了其中包含 5 的行。它将始终返回连接错误。知道为什么会这样吗?

提前致谢

妮可

最佳答案

这是一个更小的例子:

c = {...
{1}... % you can comment out this line
{2}... % error when commenting this line
{3}... % you can comment this line (will make a 2-by-2 array)
{4}... % error when commenting this line
{5}... % you can comment out this line
}

注释行将被 Matlab 视为空行。连接时,一个(或多个)空行相当于一个分号,表示新行的开始。

因此,

c = {{1} {2}

{3} {4}}

产生一个 2×2 数组,相当于

c = {{1},{2};{3},{4}}

当你在每行后面放一个分号时

c = {...
{1};...
{2};...
{3};...
{4};...
{5};...
}

任何注释掉的行都相当于一个分号,并且由于多个分号是合法的(c = {{1};;{2};} 有效),您现在可以注释掉任意数量的行。

请注意,输出现在是 n-by-1 而不是 1-by-n 数组,并且您不应该将其称为 cell ,因为这是内置函数的名称。

关于matlab - 注释某些行时 Matlab 中的单元格数组串联错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11144252/

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