2016-02-29 4 views
0

я написал, что кодНевозможно создать выходной файл с SaveAs

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);

Ошибка в run_three (строка 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 - вам редко нужно использовать 'clear all' -' clear' обычно бывает достаточно. – matlabgui