How to set multiple values at the same time from a vector?

3 visualizzazioni (ultimi 30 giorni)
There is a vector v = [1,2,3], and I want to set a=1, b=2, c=3 in a compact form. I tried [a,b,c] = deal(v), but it is not working, because the result is a = [1,2,3]. deal(1,2,3) is ok, but I dont know how to make 1,2,3 from [1,2,3]. In Maple od(v) makes this. Is there any solution for this in MATLAB?

Risposta accettata

Manoj
Manoj il 14 Nov 2014
This is one way I could think of , but maybe there is an easier way
v=[1,2,3];
vv=num2cell(v);
[a,b,c]=deal(vv{:});
  7 Commenti
Mr M.
Mr M. il 27 Nov 2014
OK, thanks: [a,b,c]=deal(vv{:}); is a solution. But what if I don't know the number of parameters? For example the maximum is three (a,b,c) but v maybe contains only two, and I want to set c to a default value in this case. How to solve this problem?
Guillaume
Guillaume il 28 Nov 2014
As I said, you don't need the deal,
[a,b,c] = vv{:};
works just as well.
As for your other question, please start a new question so that whoever answers it can get the credits for it.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by