ANSYS 연구를 최적화하는 MATLAB에서 코드를 생성하므로 ANSYS 출력 파일을 검사하여 결과가 수용 가능한지 확인하십시오.파일에서 Matlab 특정 라인을 읽고 수치 값으로 변환
이 코드는 ANSYS가 모델을 생성하는 데 사용하는 imputs 매개 변수를 가지고 있습니다. 이 매개 변수는 각 반복마다 변경되므로 각 반복마다 다른 출력 파일이 작성됩니다.
더 자세히 설명해 보겠습니다.
- 라인 1 blabla
라인 2 blabla
: 이하, 출력 파일의 일례가있다. . .
- 라인 최대 값 10000
- 라인 values1 10001 2.31 4.56 5.69 8.64 0.25 9.70
- .
- .
- 라인 최대 값 35000
- 라인 35,001 values2 2.25
- .
- .
- 라인 70,000 총 values3 2503.4
내가 원하는 모든 굵게 처음 두 값이 문제의 한도 이하 있는지이다 (즉 9.70 < 15 2.25 < 7). 그럴 경우 매트릭스에 세 번째 값을 굵은 글꼴로 저장하십시오. 그렇지 않은 경우 다음 반복으로 이동하십시오.
저는 프로그래밍에 익숙하지 않고 Matlab 지침이 다소 혼란 스럽습니다.
어떤 아이디어라도 환영합니다!
미리 감사드립니다.
는 편집 ** : ** 그건 내 전체 코드는 지금까지 : 당신은 당신이 원하는 정보 전에 형식을 다양한 라인의 알 수없는 번호가있는 경우, 아마 가장 쉬운 방법은 다음을 따라
X1=linspace(26,60,3)';
X2=linspace(104,70,3)';
R=linspace(3,10,3)';
vec={X1',X2',R'};
combs=combvec(vec{:})';
seqv=zeros(i,1);
tic
for i=1:length(combs);
fid=fopen('C:\Users\vaioss\Desktop\ergasia ymk\test\aa.txt','w+');
fprintf(fid,'*SET,X1,%7.4f \r\n',combs(i,1));
fprintf(fid,'*SET,X2,%7.4f \r\n',combs(i,2));
fprintf(fid,'*SET,R,%7.4f \r\n',combs(i,3));
fclose(fid);
fid=fopen('C:\Users\...','r+');
fclose(fid);
dos('"C:\Program Files\ANSYS Inc\v150\ANSYS\bin\winx64\ansys150.exe" -p ...');
fid=fopen('C:\Users\...','r');
for j=1:10152;
tline=fgetl(fid);
end
match = textscan(tline, '%s %f %f %f %f %f', '\n')';
seqv(i) = cell2mat(match(6,1));
if seqv(i)>67.2887;
fclose(fid);
continue
end
end
fclose all;
toc
지금까지 시도한 것을 보여줘야합니다. –
원하는 값이 항상 같은 줄에 있는지, 그리고 그 줄의 구조가 항상 같은지 여부에 달려 있습니다. 그렇다면 'textscan'을 누르십시오. – nkjt
@nkjt'textscan'으로 시도했지만, 불행히도 원하는 반복문은 매 반복마다 계속 변경됩니다. 원하는 내용이있는 줄을 검색하는 파일을 줄 단위로 스캔하는 방법이 있습니까? – dolving