How to set multiple variables at once?
이전 댓글 표시
Hi, I wonder if I can set multiple variables at once. As far as I know, I cannot do that and I should set variables like
x = 1; y = 2;
I tried [x y] = [1 2]; as I use [x y] when I get multiple variables from function output, but it didn't work.
Is there any way to do this at once? I need this technique because I have many variables to set.
And I have one more question. What should I do if I want a variable change automatically when other variable changes?
for example,
x=1;y=2;A=[x y];x=3;
but matrix A does not change, it is still [1 2];
The questions seem quite fundamental but it would be a great help if I get the answer. Thank you.
채택된 답변
추가 답변 (3개)
Ruben D. Gonzalez L.
2020년 9월 1일
As of Matlab 2019a, the following works for me:
>> [x, y, z] = deal(1, 2, 3)
x =
1
y =
2
z =
3
댓글 수: 2
Walter Roberson
2020년 9월 1일
This has been possible for a long time. Before 2006.
Personally, I do not feel that using this is of value. It is both longer and less clear than
x = 1; y = 2; z = 3;
There are some useful circumstances for multiple assignment, mostly involving struct expansion or cell expansion. However, a number of years ago, MATLAB was enhanced to not need deal() for that purpose, as demonstrated in https://www.mathworks.com/matlabcentral/answers/414731-how-to-set-multiple-variables-at-once#answer_332664 .
Ruben D. Gonzalez L.
2020년 9월 20일
I cannot agree more. Coming from Python, multiple assignment feel more natural to me, and I had just discovered deal() while developing object array interfaces and overriding subsref() and subsasgn() methods.
What I don't understand is why didn't I see your previous response from 2018. Otherwise, I wouldn't have wasted my humble two cents ;-)
Cheers.
카테고리
도움말 센터 및 File Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!