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)

Categorie

Scopri di più su Function Creation in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by