2016-02-29 84 views
0

輸出文件,我寫的代碼無法創建另存爲

clear all; 
clc; 

addpath('C:\Users\John\Documents\MATLAB\code for yannis\anger(W)\'); 


h1 = dir('C:\Users\John\Documents\MATLAB\code for yannis\anger(W)\'); 

for i=3:numel(h1) 
    %disp(h1(i,1).name); 

    %disp(k); 
    three(h1(i,1).name); 
end 

和三個功能

function three(filename) 
%disp(filename); 
q = char(39); 
filename = strcat(q,filename,q) 

%disp(filename); 
load(filename); 

,我得到這個錯誤:使用負載 無法讀取文件「03a01WaM 錯誤。 mat':沒有這樣的文件或目錄。 (第7行) load(filename); (第13行) 三(h1(i,1).name);

我還寫了存在(「03a01WaM.mat」)和函數返回2

有沒有人有一個想法,我究竟做錯了什麼?

+0

的文件名是'03a01WaM.mat',但您試圖訪問''03a01WaM.mat''。嘗試它沒有額外的撇號。 – Daniel

+0

如果答案已解決您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這表明你已經找到了解決方案,這不再是一個懸而未決的問題。如果您的問題沒有得到解答,請解釋缺少的內容。 – Daniel

回答

2

您的代碼有多個問題。

  • addpath簡直是不乾淨。
  • 您正在使用相對路徑,但不是cd。您必須使用完整路徑來訪問文件。
  • 您正在爲文件名添加撇號。

正確的代碼是:

directory='C:\Users\John\Documents\MATLAB\code for yannis\anger(W)\'; %' 
h1 = dir(directory); 

for i=3:numel(h1) 
    filename=fullfile(directory,h1(i,1).name); 
    load(filename); 
end 
+1

OP代碼的另一個問題 - 你很少需要使用'全部清除' - '清除'通常就足夠了。 – matlabgui