Accepting and saving multiple size matrix input
1 view (last 30 days)
Show older comments
a=[1];
b=[2 3 4];
c=[5; 6; 7];
d=[8 9 10; 11 12 13; 14 15 16];
I want to make a function that works with an undefined number of inputs.
In this case, 4 inputs (a,b,c,d)
////////////
Then I make the function as follows:
function out=Func(varargin)
Then when I use the function, I input:
result value=Func(a,b,c,d) %Only this command is allowed to get result value. The only changes that can be made are changing the number of input matrices.
////////////
Inside the function when I use the varargin, I get:
varargin(1) % [1]
varargin(2) % [1x3 double]
varargin(3) % [3x1 double]
varargin(4) % [3x3 double]
Is it possible to get the values of b,c,d instead of the matrix sizes?
I want to work with the values of b,c,d.
For example
out= sum(a) + sum(b) + sum(c) + sum(d)
0 Comments
Accepted Answer
Chandra Kurniawan
on 27 Nov 2011
I have a function 'Func'
function out = Func(varargin)
out = 0;
for num = 1 : nargin
out = out + sum(varargin{num}(:));
end
Save the function with filename 'Func.m' And then I have a m-file
clear all; clc;
a=[1];
b=[2 3 4];
c=[5; 6; 7];
d=[8 9 10; 11 12 13; 14 15 16];
value = Func(a,b,c,d)
Then, try to run your m-file. You will get :
value =
136
>>
0 Comments
More Answers (1)
Junaid
on 27 Nov 2011
As I understand you want a function undefined number of input. so it can either be implemented as follow.
function myFunc(varargin)
switch nargin
case{0}
% this mean no argument.
case{1}
% means one argument
case{2}
% means two argument. and so on
otherwise
% default
end
0 Comments
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!