Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 为什么Matlab2D将不同大小的原始数据附加到矩阵中?_Arrays_Matlab_Parsing_Matrix_Multidimensional Array - Fatal编程技术网

Arrays 为什么Matlab2D将不同大小的原始数据附加到矩阵中?

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

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

我有以下代码:bag.resetView(主题5)

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

根据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
中的每个单元格都容纳
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