2014-06-24 2 views
0

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 
+0

지금까지 시도한 것을 보여줘야합니다. –

+0

원하는 값이 항상 같은 줄에 있는지, 그리고 그 줄의 구조가 항상 같은지 여부에 달려 있습니다. 그렇다면 'textscan'을 누르십시오. – nkjt

+0

@nkjt'textscan'으로 시도했지만, 불행히도 원하는 반복문은 매 반복마다 계속 변경됩니다. 원하는 내용이있는 줄을 검색하는 파일을 줄 단위로 스캔하는 방법이 있습니까? – dolving

답변

0

입니다 라인

1)) 그래서

2 할, 당신은 안전하게 처음으로 3000 선 또는 무엇이든을 건너 뛸 수 있습니다 알고 분명히 경우 한 번에 (에 선 하나를 가져 fgetl를 사용) CH하는 strfind를 사용하여 values1 라인을 클릭하면 eck. 그렇다면 라인을 구문 분석하고 값이 한계 내에 있는지 확인하십시오.

그런 다음 필요한 경우 values2values3에 대해 반복하거나 다음 파일로 이동하고 반복하십시오.목록에이 문자열을 모두 포함하지 않은 파일이있을 가능성이있는 경우 eof를 찾기 전에 해당 문자열을 찾는 방법을 원할 것입니다.

+0

@ nkjt 대단히 감사합니다. 최고입니다 !! – dolving

관련 문제