Multiple functions using indexation numbers

2 views (last 30 days)
Hello,
I've got a problem where i have multiple matrix that have similar names but just changes the number of it. p.e.
A_1=[2 4 4
2 9 1]
A_2=[3 5 1
7 8 9]
A_3= ...
A_4= ...
And then i have a function that sums each line and then keeps the result.
A_1_result=[ 10
12]
A_2_result=[ 9
24]
A_3_result=...
A_4_result= ...
I'do this using 1 for cicle similar to this:
for i=1:2
A_1_result(i)=sum(A_1(i,:);
A_2_result(i)=sum(A_2(i,:);
A_3_result ....
end
Isn't there any possibility to put this in a for loop from 1 to 4 and use p.e.
A_{j}_result(i)=sum(A_{j}(i,:);
Thanks in advance

Accepted Answer

Sean de Wolski
Sean de Wolski on 3 Jan 2013
  3 Comments
Sean de Wolski
Sean de Wolski on 3 Jan 2013
No, I refuse to use evil eval().
Use a 1x20 cell array as the FAQ suggests. It will make your life much easier.
Jan
Jan on 3 Jan 2013
I agree with Sean's suggestion. The FAQ is called FAQ, because these problems occur frequently. And in all cases avoiding EVAL is the best solution.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 3 Jan 2013
I would say that, if you could even do it, for only 4 variables the illegibility it would add to your code would make it not worth it. Right now it's intuitive and easy to follow - why mess it up? You wouldn't even be reducing that many lines of code.
  1 Comment
André Pacheco
André Pacheco on 3 Jan 2013
I just showed a simple case. In my case i have a much more complicated problem where i do have more than 4 variables (around 20) and with much more equations than a simple sum. It would save me from writing down all the variables and i wanted to put the option that u could chose the number of variables. And thats not possible if i have to write down all the options for only 1 variable, to 20 variables. It would be necessary a 20 if's for the different number of variables u could chose.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!