2014-01-23 2 views
1

저는 각 셀이 (x, y) 좌표상의 점 (즉, 셀의 크기가 [1x2] 임) 인 셀 배열을가집니다. 그러한 조정 점을 예약하기 위해 그것을 매트릭스로 변경할 수 있습니까?matlab에서 벡터로 셀 배열을 변경하는 방법?

cell2mat를 사용할 때 특이한 조정이 좌표가 필요한 동안 [1x1] 크기로 변경 되었기 때문에. [0,2] [0,2] [1,3] [-13,10] [1,4] [-1,5]

내가 이러한 좌표는 음모를 꾸미고 나중에 사용할 수있는 벡터로 변경할 수있는 방법 :

내 셀 어레이는 다음과 같이인가?

+2

예상되는 결과 형식을 제공해주십시오. – herohuyongtao

+0

각 셀이 (x, y)에 독특한 좌표가있는 동안 어떻게 셀 배열을 그릴 수 있는지 물어 보는 것이 더 나을 것입니까? – Biju

+1

@Biju 정확히 Luis가 보여준대로'plot (result (:, 1), result (:, 2), '*')' – Dan

답변

4
>> myCell = {[1 2],[3 4],[5 6]}; %// example cell. Can have any size/shape 
>> result = cell2mat(myCell(:)) %// linearize and then convert to matrix 
result = 
    1  2 
    3  4 
    5  6 

은 플롯 :

plot(result(:,1),result(:,2),'o') %// or change line spec 
+0

Luis 님, 고맙습니다. 그러나 셀 포맷으로되어 있고 별도로 구할 필요가없는 동안 [xy] 좌표를 그려 봅니다. – Biju

+0

"매트릭스로 변경하십시오"... 어쨌든 다음을보십시오 업데이트 된 답변 –

+0

@LuisMendo'myCell = {[1 2 3], [3 4], [5 6 5 6 7}}'에 대해 어떻게하면이 셀 배열을 벡터로 변환 할 수 있습니까? –

0
myCell = {[0,2] [0,2] [1,3] [-13,10] [1,4] [-1,5]}; 
hold on; 
cellfun(@(c) plot(c(1),c(2),'o'),myCell); 
1

이 수행하는 또 다른 방법 : MATLAB에서

c = {[1 2], [3 4], [5 6]}; 
v = vertcat(c{:}); % same as: cat(1,c{:}) 

plot(v(:,1), v(:,2), 'o') 

셀 어레이를 comma-separated list로 확장 될 수 있고, 상기 호출은 동일하므로 ~ : vertcat(c{1}, c{2}, c{3})

+0

''C = {[1 2 3], [3 4], [5 6 5 6 7]}'어떻게하면이 셀 배열을 벡터로 변환 할 수 있습니까? –

+0

의 경우, 셀 배열을'v = [c {:}]'또는'v = cat (2, c {:})'와 같은 1 차원 벡터 (1x10 벡터)로만 전개 할 수 있습니다. 배열을 연결할 때 치수가 ** 일관성이 있어야합니다 **; [jagged] (https://en.wikipedia.org/wiki/Jagged_array) [매트릭스] (https://en.wikipedia.org/wiki/Irregular_matrix) – Amro

+0

수 없습니다 그렇지 않으면 ** pad ** ** 각 셀은 NaN으로 연결되므로 모든 행은 연결 전에 길이가 동일합니다. 스택 오버플로 (Stack Overflow)에 대한 비슷한 질문이 많이 있습니다 (예 : https://stackoverflow.com/q/3054437/97160). – Amro

관련 문제