Too many output arguments, simple but useful question

Hi, I'm trying to get the following code (simplified) running but I don't get the clue how:
a = 3; b=2; c=1;
lol = [1 2 3];
[a b c] = lol;
I get the error "Too many ouptut arguments" and I understand, that this occurs as soon as I request too many outputs from a function/expression. How may I now tell the variable "lol" to split up in 3 arguments?
(In my special case, I'm using str2double(aCellArray) instead of the variable lol)
Thanks a lot and sorry for this rather dumb question xD

1 件のコメント

Fangjun Jiang
Fangjun Jiang 2011 年 9 月 2 日
What are you trying to do? Are you trying to assign multiple variables at a time?

サインインしてコメントする。

回答 (3 件)

the cyclist
the cyclist 2011 年 9 月 2 日

1 投票

Here is one kludgy way:
a = 3; b=2; c=1; lol = [1 2 3];
lolCell = num2cell(lol);
[a b c] = lolCell{:}
Grzegorz Knor
Grzegorz Knor 2011 年 9 月 2 日

1 投票

I suggest to write own function, something like this:
function varargout = split(a)
for k = 1:nargout
varargout{k} = a(k);
end

1 件のコメント

Grzegorz Knor
Grzegorz Knor 2011 年 9 月 2 日
an example:
[a b c] = split(mean(rand(3)))

サインインしてコメントする。

Vincent
Vincent 2011 年 9 月 2 日

0 投票

wow I assumed there's an easy, handsome solution. Thanks for your suggestions, I'm gonna use one of them ;)

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2011 年 9 月 2 日

Community Treasure Hunt

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

Start Hunting!

Translated by