2010-02-23 11 views
1

나는 몇 가지 코드가배열의 특정 크기를 모르는 경우 Matlab에서 플롯을 만드는 방법은 무엇입니까?

function runTubulin() 
    n = 10; 
    for j = 1:n 
     TubulinModel(); 
    end 


plot(TubulinModel(), n); 

그래서 내 문제는 내가

가 계속 그래서 TubulinModel는 출력의 임의의 숫자를 가지고 있다는 것입니다있다 ??? ==> TubulinModel Too 많은 출력 인수를 사용하는 중 오류가 발생했습니다.

==> runTubulin에서의 오류 11 plot (TubulinModel(), n);

거기에 배열의 크기를 모를 때 데이터를 플로팅하는 방법은 무엇입니까?

답변

3

오류 (Too many output arguments)는 TubulinModel 함수가 실제로 출력을 반환하지 않는다는 것을 의미합니다. TubulinModel 함수는 사용하려고하는 PLOT 명령에 대해 적어도 하나의 출력 인수를 전달할 것으로 예상됩니다. 당신은 시도하여이를 확인할 수있는 다음과 같은 :

a = TubulinModel(); %# Place the output in a variable instead 

이 당신에게 오류를 제공한다면, 그것은 당신이 당신이 필요로하는 데이터 또는 장소를 반환하도록 TubulinModel을 수정해야합니다 즉, 전역 변수의 데이터가 함수 외부에서 액세스하여 플롯에 사용할 수 있습니다.

+1

전역 변수? 그게 효과적 일지 모르지만 나는 총 발사가 싫어 ... :) – MatlabDoug

+0

@MatlabDoug : 보통 TubulinModel의 정확한 형식과 Ben이 우리에게 많은 부분을 알려주지 않았기 때문에 동의했습니다. 그것은 그가 수 있거나 할 수 없을지도 모르는, 나는 그가 가지고있는 모든 가능성을 열거하고 있다고 생각했다. – gnovice

0

두 개의 매개 변수를 사용하여 plot을 호출하면 첫 번째 매개 변수는 x 축 데이터가되고 두 ​​번째 매개 변수는 y 축 데이터가됩니다. 이게 네가하려는거야? TubulinModel()을 y 축 데이터로 지정하려면 plot(TubulinModel())을 사용할 수 있습니다. 자세한 내용은 help plot을 참조하십시오.

plot에서 11 번째 전화를 걸기 전에 루프에서 TubulinModel() 번으로 전화를 걸 이유를 모르겠습니까?

1

루프가 후속 반복에서 TublinModel 함수와 다른 점을 보이지 않습니다. 또한 플롯 함수는 루프가 수행 한 것과 같은 방식으로 함수를 다시 호출합니다. 임의의 길이의 다른 데이터가 각 루프에 의해 반환된다고 가정하면 각 데이터 집합을 객체 배열에 저장 한 다음 플로팅 전에 사용할 매개 변수를 찾을 수 있습니다.

function runTubulin() 

n = 10; 
max_length = 0; max_pos = 0; max_neg = 0; 
for j = 1:n 
    data{j} = TublinModel(); % get your data, then characterize it 
    if max(data(j)) > max_pos, max_pos = max(data(j)); end 
    if max(-data(j)) > max_neg, max_neg = max(-data(j)); end 
end 

figure(1); % new axes 
axis([0 10 -max_neg max_pos]); hold on; % scale the axis and freeze it 
for j = 1:n 
    plot(length(data(j)),data(j)); 
end 

희망 하시겠습니까?

관련 문제