MATLAB

2013-07-22 4 views
0

에서 파일을 명명 나는 현재이있다 : 나는 부분은 현재 '디스크가 image.jpg'중 하나입니다 (다음에 의해 주어진) 현재 시간의 이름을 말에 대해 작성합니다 어떻게MATLAB

[filename, pathname, filterindex] = uiputfile({... 
    ... (various filetypes) 
    'Disks image.jpg'); 
    if isequal(filename,0) || isequal(pathname,0) 
     disp('User selected Cancel'); 
    else 
     disp(['User selected ',fullfile(pathname,filename)]); 
    end 
    imwrite(M, 'Disks image.jpg', 'jpg'); 
    disp('Image saved'); 
end 

를 :

dateTime = javaMethod('currentTimeMillis', 'java.lang.System'); 

또는 모두 그와의 조합이 이름을 다른 지정된 이름 (예 : currentTimeMillis_Diffraction_pattern.jpg)

나는 두 개의 이미지 파일을 저장하고, 그것은이 경우 좋은 것 두 번째 이미지를 다른 파일 폴더로 분리하지 않고도 정렬 된 목록을 제공하므로 두 번째 방법으로 파일의 이름을 지정할 수 있습니다. ........... + ..........._ Diffraction_pattern.extension이

답변

1

문자열 연결이 같이 할 수

덕분에 좋은 것입니다 시간을 사용

이 :

filename=[num2str(dateTime) '_Diffraction_pattern.extension']; 

또는 사용의 sprintf :

filename=sprintf('%d_Diffraction_pattern.extension',dateTime); 
2

당신이 시간을 얻을 수있는 자바 기능을 사용하는 이유는 확실하지, 쥐 그녀는 Matlab 시간 함수에서 건축했다보다는. 난 당신이 파일에 대한 .jpg 확장자를 포함하면 그, 자동 것이라고 생각 -

myFileName = [dateTimeString '_withSomeName.jpg']; 
imwrite(M, myFileName, 'jpg'); 

참고 : 난 그냥 그런 다음 파일 이름을 만들려면 어떤 이름을 가진 그을 연결

dateTimeString = datestr(now, 'yyyy-mm-dd-HH_MM_SS_FFF'); 

을 사용 imwrite으로 변환해야하므로 세 번째 인수가 필요하지 않습니다. 또한 FFF 형식 지정자를 사용하면 ms까지 시간이 절약되므로 원본 Java 함수 호출과 동일한 기능 (세분성)을 갖지만 더 현명한 파일 이름이됩니다. -

당신이 자바 기능을 사용하여 주장하는 경우

, 당신은 matlab에의 내부 시계로 변환하기 위해 필요한이 이런 식으로 뭔가 (테스트되지 않은) 의미 :

timeNow = javaMethod('currentTimeMillis', 'java.lang.System'); 
timeMatlab = timeNow/(1000 * 3600 * 24) + datenum('1 Jan 1970'); 
dateTimeString = datestr(timeMatlab, 'yyyy-mm-dd-HH_MM_SS'); 

을하지만, 왜 그런 짓을 했을까 ...