2016-11-01 3 views
1

파일에 객체 표현을 쓰고 있습니다. 그것은합리적인 형식의 파일에 Matlab 출력 행렬

<key>:<value>\n 

가 지금은 출력에 여러 행렬이이 간단한 형식을 따르지만 표준 방법은

f = open('somefile', 'w+t'); 
fprintf(f,'size:'); 
fprintf(f,'%+.4f\n', someObject.size); 

매우 추한 외모 그러나 이것은 단지이

size: 5.1234 
3.1234 
2.5421 
232332 
같은 unreadble 파일에 발생합니다

등 수백 줄의. 내가 파이썬에서이 작업을 수행하는 경우/NumPy와 (f.write("size: " + str(someObject.size) + "\n") 나는 그것은 모양을 유지하고 올바르게 정렬

size:[[5.1234 3.1234 2.5421 232322] 
[5.1234 3.1234 2.5421 232322].... 

처럼 읽을 수있는 뭔가를 얻을. matlab을 사용하여 이것을 어떻게 할 수 있습니까?

답변

1

fprintf 명령을 분할해야합니다. 당신이

numpy_like_fprintf(f, '%+.4f', someObject.size); 

다른 방법으로, 많은 파이썬의 str()처럼 문자열로 배열을 변환 num2str 을 사용할 수 있습니다 지금

function numpy_like_fprintf(fid, format_single_element, values) 
fprintf(fid, '['); 
fprintf(fid, [' ',format_single_element], values); 
fprintf(fid, ' ]\n'); 

: auxilary 기능을 사용합니다.
숫자가 문자열로 변환되는 방식을 포맷 할 수 있습니다. num2str