例如一个n×n的元胞数组,只有部分元素有内容,非空元素都是m×3的矩阵,各元素矩阵行数m不一定相同,现在想把非空元素的矩阵第3列提取出来,组成一个向量,请问有什么好办法?谢谢。
参考代码
>> c={zeros(2,3) [] magic(3); [] ones(4,3) pascal(3)}
说明
一共4条语句:
主要用到了cellfun和cat两个函数以及匿名函数,请自行查阅文档好好体会一下,有困难再追问。
顺便提醒楼上一下,元胞数组是MATLAB中很有特色、实用价值很大的一种数据类型,你用MATLAB很多年都没用过,我只能说为你感到惋惜。这种数据类型从十几年前5.0版刚出来我就觉得非常有用,这么多年来用了很多,尤其是是7.x版引入了cellfun函数以及匿名函数之后,用起来就更加方便了。
谢谢,除了循环没有其他好的办法了吗?
追答元胞数组的操作很有限,find函数什么的用不了。。据我所知没有什么好的办法了 看别人有没有高招。。。。我好奇你为什么要用元胞数组呢 我用matlab这么多年 都没用过
追问好的谢谢,我的问题是一个矩阵的结构里,各元素为尺寸不等的矩阵,批量提取矩阵中的部分元素,是不是可以用架构数组(Structrue Array)啊?Matlab我还是初级,好多数据结构、函数都不熟悉。
追答直接用数组或者矩阵就可以吧 整这么复杂 还是初级学者,,,你想解决什么问题 说来我听听