我有一个空矩阵,我有一个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
值。我希望这是你想做的。如果您能提供样品数据,我将能够提供更具体的解决方案。