Trouble with function using variable inputs.

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 件のコメント

Image Analyst
Image Analyst 2014 年 1 月 18 日
Do you want to do a matrix multiplication or an element-by-element multiplication?

サインインしてコメントする。

 採用された回答

Jan
Jan 2014 年 1 月 18 日
編集済み: Jan 2014 年 1 月 18 日

0 投票

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 件のコメント

James
James 2014 年 1 月 18 日
Thanks, Jan! I will make note of that next time I post on here.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeEntering Commands についてさらに検索

質問済み:

2014 年 1 月 17 日

コメント済み:

2014 年 1 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by