2014-07-10 3 views
0

저는 빈 행렬을 가지고 있고 for 반복문을 가지고 있습니다. 각 반복마다이 행렬에 원시를 추가하려고합니다. 각각의 원시는 다른 크기로 제공됩니다. 어떻게해야합니까?Matlab 2D가 다른 크기의 원시를 매트릭스에 첨부하는 이유는 무엇입니까?

다음 코드가 있습니다. 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 여전히 I있어 출력이 하나의 열이다

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 

단부

해결되지 방법. 또한 열에는 값이 있고 언젠가 빈 배열이 있습니까 ?? 원하고 싶습니다

답변

0

루프에서 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 값을 수용 : 여기에 당신이 할 수있는 방법입니다. 나는 이것이 당신이 원하는 것을 바란다. 샘플 데이터를 제공 할 수 있다면보다 구체적인 솔루션을 제공 할 수 있습니다.

+0

나는 이것을 시도했지만 모든 데이터를 컬럼으로 연결했다. 따라서 2D 행렬 대신에 하나의 행렬이 있습니다. – TravellingSalesWoman

+0

@TravellingSalesWoman 저는 여러분이 차원 'x * 1'의 셀 배열을 가지고 있다고 생각합니다. 각 셀은 2 차원 '원시'행렬을 포함합니다. 결과를 얻은 후에는 셀 배열의 각 셀 내용을 확인하십시오. 귀하의 의견을 정확하게 이해하지 못했다면 샘플 데이터를 보내주십시오. 예상 결과를 얻을 수있는 방법을 알려 드리겠습니다. – Naveen

관련 문제