- plot() is a built-in function so you should not name your own function as plot.
- It is better to have an input argument specify the folder so you can use it to apply to many folders.
- When load or save, it's always better to specify the full path of the file.
- When you try to get the file name, you need to get rid of the .txt extension.
- close() needs to specify the figure handle.
Function
조회 수: 1 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
Fangjun Jiang
2011년 11월 9일
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
추가 답변 (1개)
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
참고 항목
카테고리
Help Center 및 File Exchange에서 File Operations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!