두 개의 MATLAB 프로그램이 있습니다 : prog1.m 및 prog2.m
두 프로그램 모두에서 2 차원 행렬 M을 사용해야합니다.
prog1.m (텍스트 파일에서 수동으로)에 매트릭스를로드했습니다.
두 프로그램을 모두 ~ 100 번 실행해야합니다 (매번 다른 매트릭스에 대해). 그래서 지금은 매번 다른 매트릭스로 prog1.m을 100 번 실행했습니다.
이제 prog2.m의 차례이지만 매트릭스를 수동으로 다시로드하고 싶지 않습니다.
prog2.m에서도 사용할 M을 포함하는 prog1.m (100 개의 복사본)을 저장했습니다. prog2.m에서 prog1.m으로 M을로드하는 방법이 있습니까?
prog1.m에서 M을 자동으로로드하는 prog2.m에 코드를 추가하고 싶습니다. PS : 저는 MATLAB을 처음 접했습니다.
경우 prog1
와 prog2
이미 기능이 아닌, 함수로 재 작성. 예를 들어, 첫 번째 줄은 다음과 같습니다.
function [out1 out2] = prog1(M)
function out = prog2(M)
그런 다음, 파일 이름을 부여, 세 번째 기능, 부하 데이터, 전화를 작성 prog1
하고 prog2
선택적으로 (당신이 사용할 수있는 적절한 형태로 데이터를 저장 fileparts
하고 fullfile
자동으로 입력을 기반으로 새 파일 이름을 생성 - 예를 들어 주어진 data101.txt, 반환 data101_proc.mat. 이러한 함수의 베어 본은 다음 라인을 따라 있습니다.
function M = prog3(fname)
M = load(fname); % or whatever method is required for loading this data
%call prog1 and prog2
[out1 out2] = prog1(M);
out3 = prog2(M);
%make new filename
[fpath,fname2,ext] = fileparts(fname);
fname_out = fullfile(fpath, [fname2,'_out','.mat']);
%save data - depends on what outputs are and what you need to do with them later
save(fname_out, 'out1','out2','out3','M');
end
마지막으로 바 배아가 언급했듯이 ls
또는 dir
을 사용하여 사용하려는 파일 목록을 만들고 각 파일에 대해 위의 함수를 차례로 호출하는 루프를 만들 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다