Arrays 为什么Matlab2D将不同大小的原始数据附加到矩阵中?
我有一个空矩阵和一个for循环,在每次迭代中,我想给这个矩阵添加一个raw,每个raw都有不同的大小。我该怎么做 我有以下代码:bag.resetView(主题5) ======================================================= 根据Naven提供的答案修改代码,但仍未解决Arrays 为什么Matlab2D将不同大小的原始数据附加到矩阵中?,arrays,matlab,parsing,matrix,multidimensional-array,Arrays,Matlab,Parsing,Matrix,Multidimensional Array,我有一个空矩阵和一个for循环,在每次迭代中,我想给这个矩阵添加一个raw,每个raw都有不同的大小。我该怎么做 我有以下代码:bag.resetView(主题5) ======================================================= 根据Naven提供的答案修改代码,但仍未解决 size_topic_3 = bag.readAll({topic3}); bag.resetView(topic3); count = 0; s3time = [] ; m
size_topic_3 = bag.readAll({topic3});
bag.resetView(topic3);
count = 0;
s3time = [] ;
mcxdata = cell(length(size_topic_3),1);
mcydata = cell(length(size_topic_3),1);
mczdata = cell(length(size_topic_3),1);
while bag.hasNext();
[msg, meta] = bag.read();
s3time = [ s3time msg.header.stamp.time] ;
for i=1:length(msg.points)
mcxdata{i} = msg.points(1);
mcydata{i} = msg.points(2);
mczdata{i} = msg.points(3);
end
结束
我得到的输出是一列。。此外,该列有时有值,有时是空数组??如果循环中
raw
的大小不同,请尝试使用单元格数组。以下是如何做到这一点:
mxdata = cell(length(msg5.markers),1);
while bag.hasNext();
[msg5, meta] = bag.read();
for i=1: length(msg5.markers)
mxdata{i} = mxdata msg5.markers.pose.position(1) ;
end
end
mxdata
中的每个单元格都容纳raw
值。我希望这就是你想要做的。如果您可以提供示例数据,我将能够提供更具体的解决方案。我尝试过这样做,但它将所有数据连接为一列。因此,我得到了一个2D矩阵,而不是2D矩阵colomn@TravellingSalesWoman我想您得到了一个维度为x*1
的单元格数组。每个单元格包含二维原始矩阵。得到结果后,请检查单元格数组中每个单元格的内容。如果我没有正确理解你的评论,请给我一些样本数据。我会告诉你怎样才能得到预期的结果。
mxdata = cell(length(msg5.markers),1);
while bag.hasNext();
[msg5, meta] = bag.read();
for i=1: length(msg5.markers)
mxdata{i} = mxdata msg5.markers.pose.position(1) ;
end
end