如何在matlab中仅删除列中的一系列单元格

Dan*_*cht 3 matlab cell

我有一个23x5的单元阵列,我正在尝试替换所有单元格,但第一个单元格中的空单元格.

当我尝试时,array{2:end,4}=[]我得到"这个任务的右手边有太少的值来满足左手边."

仍然与Matlab如何处理不同的类混淆,我也尝试 array(2:end,4)=[]并得到"空赋值只能有一个非冒号索引".

我知道for循环可以很容易地清空每个单元格的内容,但我觉得必须有一个更简单的解决方案来解决这个问题.

谢谢您的帮助.

Jus*_*tin 6

尝试使用:

array(2:end,4) = {[]}

例如:

>> array = cell(23,5);
>> array(:) = {1};
>> array(2:end,4) = {[]}
array = 

    [1]    [1]    [1]    [1]    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
    [1]    [1]    [1]     []    [1]
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这是有效的,因为{[]}是一个标量(1x1)单元格数组,并且索引`x(...)= s`,其中s是标量,s得到"标量扩展"(即复制)到相同的元素数量为`x(...)`. (2认同)