How can i give a number or name to each iterative in for loop?
Ältere Kommentare anzeigen
example:
A=[2 2 2; 3 3 3; 1 1 1];
B=[1 2 3];
for i = 1:3
C = B + A(1:end,i)
end
C =
3
5
4
C =
3
5
4
C =
3
5
4
i want to change C to ans_1 , ans_2, ans_3 or any other name
My main point is the answer should not have the same name, the name should be
changed with each iterative. if name is not possible i can still accept numbers
such as
ans_1 = ..................... Or 1 =
3 3
5 5
4 4
ans_2 = .......................... 2 =
3 3
5 5
4 4
Antworten (2)
Walter Roberson
am 26 Mai 2013
1 Stimme
7 Kommentare
Brwa
am 26 Mai 2013
Jan
am 26 Mai 2013
@Brwa: What is not working and what does "not working" exactly mean? If you want help, explaining any details is a good strategy.
Image Analyst
am 26 Mai 2013
Bearbeitet: Image Analyst
am 26 Mai 2013
Remember, Walter is one of the developers of the hopefully-soon-to-be-released Mind Reading Toolbox, ( http://www.mathworks.com/matlabcentral/answers/71339#comment_142227) so maybe that is enough info for Walter.
Brwa
am 28 Mai 2013
Image Analyst
am 28 Mai 2013
Walter referred you to the FAQ, which recommends that you don't do what you want to do and recommends some other ways. However the FAQ still does give you the way to do it anyway (with the eval function) if you insist on disregarding the recommendations in the FAQ. But, all you said is "its not working". So we ask ourselves "_What_ is not working? He didn't say!" I'm reasonable certain the FAQ is working. Your code may not be, but you didn't share your code so we can see how you applied the code from the FAQ to your situation. So what can we say? I hope that explains the situation.
Jan
am 28 Mai 2013
@Brwa: We all are eager to help users, who have Matlab problems. It is obvious, that it is impossible to suggest any modifications based only on "it is not working". We neither know what is not working, if you get an error or if the results differ from your expectations.
On one hand this is very obvious, on the other hand this happens so often in this forum, that it hurts. Therefore irony is an adequate method to avoid growing aggressions. So do not take it personally, just provide the information, which are required to help us to solve your problem. Then we are serious again.
Brwa
am 29 Mai 2013
Image Analyst
am 26 Mai 2013
Like the FAQ said, don't do it in a loop. If you want three variables, just do it one at a time:
ans_1 = B' + A(:, 1)
ans_2 = B' + A(:, 2)
ans_3 = B' + A(:, 3)
but if it's a larger array it will be more convenient to use indexes. Try it like this instead:
A=[2 2 2; 3 3 3; 1 1 1];
B=[1 2 3];
C=zeros(size(A));
for column = 1:3
C(:,column) = B' + A(1:end,column)
end
or maybe you could figure out how to make arrayfun() do it.
Kategorien
Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!