2014-01-05 7 views
-5

У меня возникли проблемы с этой командойЧто случилось с [а Ь] = Рэнди()

[a b]=randi(5,1,2) 

MATLAB говорит мне
Слишком много выходных аргументов.
Может ли кто-нибудь сказать мне, что я сделал неправильно?

+1

В случае, если вам интересно, почему это должен быть только один вывод, если вы хотите два числа: вы получаете все числа в векторе/массиве, а не как отдельные переменные. –

ответ

3

Причина здесь очевидна, так как должен быть только один выход для randi().

r = randi(imax,n) 
r = randi(imax,m,n) 
r = randi(imax,[m,n]) 
r = randi(imax,p1,...,pn) 
r = randi(imax,[p1,...,pn]) 
r = randi(imax) 
r = randi(imax,size(A)) 
r = randi([imin,imax],...) 
r = randi(..., classname) 

Оформить свой documentation для получения дополнительной информации.

+1

просто для того, чтобы добавить специфику к исходному вопросу, вы, вероятно, хотите «r = randi (5,1,2); a = r (1); b = r (2); 'или что-то в этом роде. – adalca

0

Как упомянуто в @hero, вы должны просто получить вектор в виде вывода randi.

Если вы действительно должны получить его в разные буквы, вот как это можно сделать:

c = num2cell(randi(5,1,2)); 
[a, b] = deal(c{:}); 

Излишне говорить, что это не то, что обычно вы должны хотеть.

Смежные вопросы