2014-02-20 2 views
3

옥타브 호환 모델의 적합성 값을 요구하는 MATLAB에서 최적화 코드를 실행 중입니다.이 모델을 해결하기 위해 MATLAB을 사용할 수 없습니다. 따라서 옥타브. 이를 위해 나는 모양 MATLAB에서 피트니스 기능을 쓴이MATLAB을 사용하여 옥타브 모델 호출

fid = fopen('parameter.txt','w'); 
for i=1:length(x) 
% fprintf(fid,'%e \n',x(i)); 
    fprintf(fid,'%12.5f \n',x(i)); 
end 
fclose(fid); 

system('./dswrap'); 

% get the objective fitness value: 
fid = fopen('fitness.txt','r'); 
y=fscanf(fid,'%f',[1]); 
fclose(fid); 
  1. X parameter.txt에 들어가는 모델에 대한 입력 벡터는
  2. fitness.txt이의 출력입니다 dswrap가

    int main() 
        { 
         FILE*fp,*fp_r; 
         fp=popen("octave","w"); 
         fprintf(fp,"ObjFuS"); 
         pclose(fp); 
        } 
    

    이 I를 다음과 같이 보인다 C로 작성된 코드

./dswrap nvokes 옥타브 (octave) 후 parameter.txt에서 입력을 받아서 fitness.txt로 출력하는 ObjFus를 호출합니다. 내가 직면하고 문제는 fitness.txt가 생성되지 않습니다이며 만지작 몇 시간 후에 내가 내 터미널에서 옥타브를 호출 할 수 있습니다

sh: octave: command not found 

으로 한 가지 문제를 참조하십시오. 그래서 위의 오류가 발생하는 이유는 확실하지 않습니다. 내가 다른 것을 잘못하고있을 수 있습니까? 내 fitness.txt를 올바르게 생성하는 데 도움이 필요합니다. 감사.

+1

왜 옥타브를 실행하는 대신 시스템 명령을 통해 MATLAB에서 직접 옥타브를 실행하는 C 코드를 사용하고 있습니까? – Daniel

+0

[system] (http://www.mathworks.com.au/help/matlab/ref/system.html) 명령을 사용할 수 있습니까? – Marcin

+0

@Marcin 예 시스템 명령을 사용할 수 있습니다. – user3330484

답변

0

시스템을 시작하는 데 필요한 프로그램 이름 이외의 정보가 필요합니다. 다른 언어로 부르는 것은 도움이되지 않지만 다행스럽게도 경로를 지정할 것입니다. 나를 위해

는 다음 호출이 실패 :

!textpad % Equivalent to system('textpad') 

하지만이 하나의 작품 :

!"C:\Program Files (x86)\TextPad 6\TextPad.exe" 
관련 문제