How can i call function without any output arguments?
7 ビュー (過去 30 日間)
古いコメントを表示
On my project my code is working. After that i tried to add a funciton on my code. As you can see down below i put my codes in a funciton & called it "plotter" without any output arguments.
function plotter(files, dir_path)
Exceldir = dir_path + "\ExcelFiles";
cd(Exceldir); % Change current directory to the where excel files restored in.
for i=1:length(files)
% Get sheet names being in the excel file.
sheets = sheetnames(files(i).name); % Sheets array.
% Get whole datas inside the excel files month by month.
for j=1:length(sheets)
data = readtable(files(i).name, "Sheet", sheets(j));
days = 1:1:size(data.Date); % Days array.
hold on;
plot(data.number_sold, days, "b.", "LineWidth", 2) % xAxis = sold_number
% yAxis = days
end
end
hold off;
end
% Call function "plotter"
xlsx_files = dir("*.xlsx");
Maindir = "C:\Users\emird\AppData\Local\Programs\df_2_db";
plotter(xlsx_files, Maindir)
When i call my funciton i get an error.

How can solve this problem and run my code?
7 件のコメント
Stephen23
2023 年 2 月 27 日
編集済み: Stephen23
2023 年 2 月 27 日
"When i run my code it changes current directory to where the excel files stored in(gets in the ExcelFiles directory)."
Which is one of the reasons why it is a bad idea to change directory just to access data files: your code changes the function scope.... and then functions don't work, because you have changed the function scope. Best avoided.
The recommended approach is to use absolute/relative filenames to access data files. All MATLAB functions that access data files accept absolute/relative filenames. You should use absolute/relative filenames. You will find FULLFILE useful for this.
回答 (1 件)
Cris LaPierre
2023 年 2 月 27 日
編集済み: Cris LaPierre
2023 年 2 月 27 日
Based on the code you have shared, you likely need to change the order of your script. Functions must be defined at the bottom of the script.
% Call function "plotter"
xlsx_files = dir("*.xlsx");
Maindir = "C:\Users\emird\AppData\Local\Programs\df_2_db";
plotter(xlsx_files, Maindir)
function plotter(files, dir_path)
Exceldir = dir_path + "\ExcelFiles";
cd(Exceldir); % Change current directory to the where excel files restored in.
for i=1:length(files)
% Get sheet names being in the excel file.
sheets = sheetnames(files(i).name); % Sheets array.
% Get whole datas inside the excel files month by month.
for j=1:length(sheets)
data = readtable(files(i).name, "Sheet", sheets(j));
days = 1:1:size(data.Date); % Days array.
hold on;
plot(data.number_sold, days, "b.", "LineWidth", 2) % xAxis = sold_number
% yAxis = days
end
end
hold off;
end
8 件のコメント
参考
カテゴリ
Help Center および File Exchange で Spreadsheets についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!