為臨時檔案建立唯一名稱

在編寫指令碼或函式時,可能需要一個或多個臨時檔案以便例如儲存一些資料。

為了避免覆蓋現有檔案或隱藏 MATLAB 函式,可以使用 tempname函式為系統臨時資料夾中的臨時檔案生成唯一名稱

my_temp_file=tempname

生成檔名時沒有副檔名; 可以通過將所需的副檔名連線到 tempname 生成的名稱來新增它

my_temp_file_with_ext=[tempname '.txt']

可以通過呼叫 tempdir 函式來檢索系統臨時資料夾的 locaton。

如果在執行函式/指令碼期間不再需要臨時檔案,可以使用 delete 函式刪除它

由於 delete 不要求確認,因此將 on 設定為在 recycle 資料夾中移動要刪除的檔案的選項可能很有用。

這可以通過以下方式使用函式回收來完成 :

recycle('on')

在以下示例中,提出了函式 tempnamedeleterecycle 的可能用法。

%
% Create some example data
%
theta=0:.1:2*pi;
x=cos(theta);
y=sin(theta);
%
% Generate the temporary filename
%
my_temp_file=[tempname '.mat'];
%
% Split the filename (path, name, extension) and display them in a message box
[tmp_file_path,tmp_file_name, tmp_file_ext]=fileparts(my_temp_file)
uiwait(msgbox(sprintf('Path= %s\nName= %s\nExt= %s', ...
              tmp_file_path,tmp_file_name,tmp_file_ext),'TEMPORARY FILE'))
%
% Save the varaibles in a temporary file
%
save(my_temp_file,'x','y','theta')
%
% Load the varaibles from the temporary file
%
load(my_temp_file)
%
% Set the reclycle option on
%
recycle('on')
%
% Delete the temporary file
%
delete(my_temp_file)

警告

使用 java.util.UUID.randomUUID 方法( randomUUID ) 生成臨時檔名。

如果在沒有 JVM 的情況下執行 MATLAB,則
根據 CPU 計數器和時間使用 matlab.internal.timing.timing 生成臨時檔名。在這種情況下,臨時檔名不保證是唯一的。