Я пытаюсь перетасовать вектор, который еще не определен, вектор состоит из [0 0 0 ... 0 0 1 2 3 ... (n-zer)]
n
: длина вектора zer
: числонули в начале
примерно так:
PartZeroPartNum=@(zer,n) [zeros(1,zer),1:(n-zer)];
shuffled=@(zer,n) PartZeroPartNum(zer,n)(randperm(n));
не работает, так как эта часть
PartZeroPartNum(zer,n)(randperm(n))
выдает ошибку:
не может вызвать или индексировать во временный массив
Напротив, это работает, если я делаю это так:
n=100;
PartZeroPartNum=logical([zeros(1,zer),1:(n-zer)]);
shuffled=@() PartZeroPartNum(randperm(n));
Возможно ли перетасовать более универсальныйвектор как я пытался сделать выше? может быть, по-другому?
Причина в том, что мне нужно много примеров перемешанных векторов, поэтому я подумал сначала сделать эту анонимную функцию, а затем легко делать выборки, например:
ShVec= shuffled(50,100);