Function

조회 수: 1 (최근 30일)
Baba
Baba 2011년 11월 9일
I'd like to be able to apply this function loads,plots and saves figure data from a text file, to every file in a directory, such that when I type FunctionName(some directory), the function forks...
this is my code:
function plot;
files = dir('*.txt');
for i=1:length(files)
data = load(files(i).name);
filename=[files(i).name];
plot(data);
saveas(h,filename,'fig');
close;
end
end

채택된 답변

Fangjun Jiang
Fangjun Jiang 2011년 11월 9일
  1. plot() is a built-in function so you should not name your own function as plot.
  2. It is better to have an input argument specify the folder so you can use it to apply to many folders.
  3. When load or save, it's always better to specify the full path of the file.
  4. When you try to get the file name, you need to get rid of the .txt extension.
  5. close() needs to specify the figure handle.
function MyPlot(PathStr)
files = dir(fullfile(PathStr,'*.txt'));
for i=1:length(files)
data = load(fullfile(PathStr,files(i).name));
filename=strrep(files(i).name,'.txt','');
f=figure;
plot(f,data);
saveas(h,fullfile(PathStr,[filename,'.fig']));
close(f);
end
  댓글 수: 4
Baba
Baba 2011년 11월 9일
Getting an error:
??? Undefined function or variable 'textfiles'
textfiles being the subfolder name where textfiles are located
I use myPlot(textfiles)to call the function
Walter Roberson
Walter Roberson 2011년 11월 9일
myPlot('textfiles')

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Daniel Shub
Daniel Shub 2011년 11월 9일
What problems are you having. the code looks pretty close. You don't define h, so I just replaced it with gcf (the current figure). Your function didn't take in the directory name like you need (or make use of the directory name).
function FunctionName(DirectoryName)
cd(DirectoryName)
files = dir('*.txt');
for i=1:length(files)
data = load(files(i).name);
filename=[files(i).name];
plot(data);
saveas(gcf,filename,'fig');
close;
end
end
  댓글 수: 1
Baba
Baba 2011년 11월 9일
the problem is when I type in FunctionName(DirectoryName)
i get an error:
??? Undefined function or variable 'DirectoryName'.
For DirectoryName I typed in a folder within the working directory which contains my text files

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by