arrays - 如何从单元格数组中复制列以创建另一个单元格数组?
问题描述
我有一个 1 x 4 单元阵列(1 行 4 列)。该元胞数组的每一列都包含一个 4 x 4 矩阵。我只想复制每 4 x 4 矩阵的第 4 列的第一、第二和第三行,并创建另一个 3 x 1 的 1 x 4 单元格数组(复制了 3 行和 1 列元素)。我想知道这样做的有效方法是什么?
for i=1:1:number_links
for j=1:1:3
O{1,i}(j,4)=T{1,i}(j,4);
end
end
解决方案
邦华给出了一个很好的解决方案。但是可以使用隐藏循环cellfun
。我不确定它是否真的比普通的旧循环更干净,但很高兴了解这些可能性:
O = cellfun(@(x)x(1:3,4),T,'UniformOutput',false);
这里我们使用了一个匿名函数@(x)x(1:3,4)
,它应用于每个元素T{1,i}
。也就是说O{1,i} = T{1,i}(1:3,4)
,就像邦华的回答一样。
推荐阅读
- html - 是否可以将图像放置在不影响滚动条的窗口边缘?
- mysql - 如何编写一个对行进行分组的 sql 查询,然后对其中一列进行一些计算?
- java - 从 txt 文件或变量中读取数据更快?
- c# - c#如何最好地将数组或列表放入也有名称的类中?
- visual-studio-2019 - Visual Studio 2019 如何打开默认选项卡
- c++ - C++ 入门 - 变量的值
- c# - 可疑的演员阵容中没有继承自的解决方案中的类型->为什么/以某种方式起作用
- r - 如何在 ggplot2 geom_col (R) 中绘制百分比而不是计数?
- javascript - 尽管使用 htmlspecialchars 对单引号进行编码,JavaScript 仍然抱怨这些引号需要在函数调用中转义
- html - 如何设置元素水平固定?