如何重塑新单元阵列行向量?

5视图(30天)
我有一个变量Big_RIR_AVG也就是1 * 2611细胞。
Big_RIR_AVG(1)是59 * 1双
Big_RIR_AVG(2)是60 * 1双
Big_RIR_AVG(3) 59 * 1细胞(数字+ Nan值作为字符串)
等等。所以通常可以是不同的行数和类型也是双或细胞。
我也有一个向量数= (483 373 396 879 480)
它的总和是2611年我列的初始变量的长度。所以我想5新向量(483 * 373 * 1396 * 1879 * 1480 * 1)。第一个向量我想带Big_RIR_AVG(1:483),并创建这个大向量的所有元素。等其他4向量。
有什么想法?
3评论
克里斯托Antonakopoulos
克里斯托Antonakopoulos 2015年11月26日
是的,这是我的意图。抱歉误解,但下面的代码在答案正是我需要的

登录置评。

接受的答案

大卫年轻
大卫年轻 2015年11月26日
编辑:大卫年轻 2015年11月26日
首先,有一个错误来纠正。 Big_RIR_AVG (1) 不是一个59 x1的两倍。这是一个包含59 x1双标量细胞。这可能看起来像一个细节,但重要的是要理解细胞数组索引正确如果你使用细胞阵列。然而, Big_RIR_AVG {1} 一个59 x1的两倍。检查文档的细胞数组如果你不理解。
我认为你想连接单元阵列的每个部分的内容。(尚不完全清楚,因为你给第一个输出向量的大小483 * 1,但它结合了前483个输入向量将比这长得多的时间。)这涉及到将数字的字符串表示转换为双打。
首先,处理这些尴尬的细胞的字符串数组。假设细胞数组是所有列,每个字符串代表一个数字在一个合理的格式,这应该这样做:
cellind = cellfun (@iscell Big_RIR_AVG);
%将细胞向量转换成双
BRA_noCells (cellind) = cellfun (@str2double Big_RIR_AVG (cellind),
“UniformOutput”、假);
%复制两向量
BRA_noCells (~ cellind) = Big_RIR_AVG (~ cellind);
现在做数组的各个部分的连接
数量= (483 373 396 879 480);
开始= cumsum([1计数]);%段的起始点
combinedVectors =细胞(1、长度(计数));
k = 1:长度(计数)
combinedVectors {k} = vertcat (BRA_noCells{开始(k):开始(k + 1) 1});
结束
然后 combinedVectors {1} 是第一组的连接,等等。
当然,你需要检查这个工作正常和你的数据。
1评论
克里斯托Antonakopoulos
克里斯托Antonakopoulos 2015年11月26日
谢谢你这正是我所需要的。它的工作原理,尤其是第一线是真的很有帮助的,因为我没有太多的经验在细胞处理。

登录置评。

更多的答案(0)

类别

找到更多的在细胞数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!