2016-02-29 68 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