Use the input arguments to load user-defined .mat files(2xn matrix) in the function.

조회 수: 3 (최근 30일)
I am new to matlab
It is necessary to use the input arguments to load different .mat files(2xn matrix) each time the function is used by a user. The number of .mat files to be processed inside the function are also changing, so I used varargout and varargin. For each input, there are 2 output vectors.
As input arguments in varargin can be called by varargin{1}, varargin{2}... I tried to use it to load the files. It did not work.
For example, 2 files that should be executed are Data1.mat, Data2.mat
Outputs will be Ans1,Ans2,Ans3,Ans4.
So I used the following command for the function file (that is saved as Data_function.m)
[Ans1,Ans2,Ans3,Ans4]= Data_function (Data1, Data2)
function varargout = Data(varargin)
A= load ('varargin{1}'); %to load first inputargument file name
Ans1 = A(:,1).*3; %just for example
Ans2 = A(:,2).*4;
B= load ('varargin{2}') %to load first inputargument file name
Ans3 = A(:,1).*3;
Ans4 = A(:,2).*4;
end
This gives an erro: Unable to read file 'varargin{1}'. No such file or directory.
(The files Data1 and Data2 are in the current folder, where the function is saved)
It would be a great help if you could show the right way to load multiple files.

채택된 답변

Walter Roberson
Walter Roberson 2021년 4월 9일
편집: Walter Roberson 2021년 4월 9일
A= load (varargin{1}); %to load first inputargument file name
This assumes that when you called
[Ans1,Ans2,Ans3,Ans4]= Data_function (Data1, Data2)
that Data1 is a variable containing a character vector or string scalar that contains a file name.
  댓글 수: 3
Walter Roberson
Walter Roberson 2021년 4월 9일
As I understand from your answer, using varargin to input a .mat file is wrong(?)
No, varargin to input a .mat file is fine. Your problem is that when you call
[Ans1,Ans2,Ans3,Ans4]= Data_function (Data1, Data2)
that your Data1 is not a character vector or string scalar at that point in the code.
Garvit Amipara
Garvit Amipara 2021년 4월 11일
Okay, so the right way is to call the function is:
[Ans1,Ans2,Ans3,Ans4]= Data_function ('Data1', 'Data2')
Thank you for your help.

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

추가 답변 (0개)

카테고리

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

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by