2011-02-24 7 views
0

나는이 상황이 있으며 적절한 방법으로 해결할 수 없다. 문제는 이것이다 :matlab에 벡터 플로팅 벡터

  • Vector1 = [NAME1 NAME2 NAME3 NAME4 ... nameN] (캐릭터 이름)
  • Vector2 = [시간 1 TIME2의 시간 3의 time4] (더블)
  • : 내가 3 개 벡터를 가지고 Vector3 = [시간 1 : NAME4의 TIME2 : 이름 1 시간 3 : 이름 1의 time4 : NAME1] (더블 : 문자열)

내가 MATLAB에서 다음을 수행 할 : 이름을 Y 축에 벡터은 1

1 는 -이 코드로 할 수있는 :

set(gca, 'YTick',1:N, 'YTickLabel',Names(:,1)) 

2 풋 벡터 2를 X 축에, 우리는 I가 & Y 싶습니다 X 두 축이 있으면 타임 라인을

3- 시뮬레이션 3 벡터를 사용하여 그래프의 점을 그립니다.

예를 들어, 3 Vector는 secuentially timestamp를 포함하고 있으며 각 timestamp에는 nameN이 실행되므로 3 개의 벡터를 입력으로 사용하여 그래프에 점을 표시하고 싶습니다. 사전 그것이 할

답변

1

vector3의 이름을 숫자로 변환해야하고 plot 명령을 호출 할 수 있습니다. 예를 들어

names = {'a','b','c','d'}; %# use a cell array (curly brackets) for strings 
time = [10 20 30 40 50]; 
data = {10,'d';20,'b';40,'c'} 

%# convert data to numeric xData, yData 
xData = cell2mat(data(:,1)); 
[dummy,yData] = ismember(data(:,2),names); 

%# plot 
plot(xData,yData,'.') %# plot dots 
set(gca,'YTick',1:length(names),'YTickLabel',names,'XTick',time) 

%# make sure the axes limits aren't too tight 
xlim([0,60]),ylim([0,5]) 
+0

I이 행에서 오류 : [~ yData에] = ismember (데이터 (:, 2)의 이름); 표현식이나 문장이 잘못되었습니다 - 불균형 일 수도 있습니다. (, { –

+0

@Martin Solac : 이전 버전의 Matlab에서'~'주석이 지원되지 않는 것 같습니다. 코드. – Jonas

0

한 방법으로

어떤 제안? 감사합니다,

  1. 는 Vector3에
  2. 후 사용 플롯에만 값을 넣어 (vector2을 vector3)

또한 vector1의 이름을 "scale"로, vector2를 "time"으로, vector3를 "values"로 바꾼다. 그것은 당신이 무엇을 사용하고 있는지에 대해 당신의 마음을 분명히하는 데 도움이 될 것입니다. 희망이 도움이됩니다.