为什么Matlab 2D将不同大小的raw附加到矩阵中



我有一个空矩阵,我有一个for循环,在每次迭代中,我想向这个矩阵添加一个raw,每个raw都有不同的大小。我该怎么做呢?

我有以下代码:bag.resetView(topic5);

 mxdata = [][] ;
    mydata = [][] ;
    while bag.hasNext();
    [msg5, meta] = bag.read();
    for i=1: length(msg5.markers)
         mxdata = [ mxdata msg5.markers.pose.position(1)] ;
         // we add a raw, next time we should add the seconf raw for this matrix 
    end
 end 

=======================================================

根据Naven提供的答案修改的代码,但仍然没有解决

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中的每个cell容纳raw值。我希望这是你想做的。如果您能提供样品数据,我将能够提供更具体的解决方案。

相关内容

  • 没有找到相关文章

最新更新