옥타브 호환 모델의 적합성 값을 요구하는 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);
- X parameter.txt에 들어가는 모델에 대한 입력 벡터는
- 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를 올바르게 생성하는 데 도움이 필요합니다. 감사.
왜 옥타브를 실행하는 대신 시스템 명령을 통해 MATLAB에서 직접 옥타브를 실행하는 C 코드를 사용하고 있습니까? – Daniel
[system] (http://www.mathworks.com.au/help/matlab/ref/system.html) 명령을 사용할 수 있습니까? – Marcin
@Marcin 예 시스템 명령을 사용할 수 있습니다. – user3330484