gpt4 book ai didi

matlab - 如何以我想要的方式删除单元格中的空元素

转载 作者:行者123 更新时间:2023-12-04 18:16:45 25 4
gpt4 key购买 nike

在 MATLAB 我有一个像这样的单元格数组

a = { 1 2 2 3 4 5 [] []
2 4 5 4 3 2 4 5
4 5 4 3 4 [] [] []}

我想以某种方式删除空元素:
a = { 1 2 2 3 4 5 2 4 5 4 3 2 4 5 4 5 4 3 4}

但是当我使用这个时: a(cellfun(@isempty,a)) = [];我得到的是:
a = {1 2 4 2 4 5 2 5 4 3 4 3 4 3 4 5 2 4 5}

这不是我想要的

最佳答案

问题是线性索引在行的方向上运行,即它通过第一列,然后通过第二列等。

你可以在调用 reshape 时看到这一点在向量上:

>> reshape([1 2 3 4 5 6 7 8 9],3,3)
ans =
1 4 7
2 5 8
3 6 9

要达到你想要的结果,需要转置 a在索引到它之前。
a = a';
a(cellfun(@isempty,a)) = [];

关于matlab - 如何以我想要的方式删除单元格中的空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505101/

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