Borrar filtros
Borrar filtros

Trouble with function using variable inputs.

2 visualizaciones (últimos 30 días)
James
James el 17 de En. de 2014
Comentada: James el 18 de En. de 2014
Hello, I am fairly new to Matlab and am having a little difficulty using the "varargin" statement.
I am trying to create a function which multiplies matrices in a specific way.
The number of inputs will always be some multiple of 3 PLUS 1 (i.e. 4,7,10,13...). Taking as an example an input of 4 variables, (a,b,c,d), I want to do the following operation:
M = [1 0;-1/a 1]*[1 b/c;0 1]*[1 0;-1/d 1];
Putting this into a loop, I would have something like:
M = [1 0;-1/a 1];
N = length(varargin); %number of input variables
for k = 2:3:N
b = varargin(k);
c = varargin(k+1);
d = varargin(k+2);
M = M*[1 b/c;0 1]*[1 0;-1/d 1];
end
However, this does not work. I believe it has to do with the fact that the input variables are not doubles. Does anyone have an advice for me?
Please let me know if I was too vague in my description.
Thanks!
  1 comentario
Image Analyst
Image Analyst el 18 de En. de 2014
Do you want to do a matrix multiplication or an element-by-element multiplication?

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 18 de En. de 2014
Editada: Jan el 18 de En. de 2014
varargin replies a cell, so you need curly braces:
b = varargin{k};
% The same for b and c
Please do not claim only "this does not work". Showing us the complete error message is much more helpful for solvind your problem. Thanks.
  1 comentario
James
James el 18 de En. de 2014
Thanks, Jan! I will make note of that next time I post on here.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by