edit-selecting random values

I have a 10x10 matrix,i need 3 x10 ,but the corresponging column values must not change
if u r selecting any elememt from ist row that corresponging column values must not change

 Risposta accettata

Andrei Bobrov
Andrei Bobrov il 12 Gen 2012
EDIT [09:13(UTC+4) 13.01.2012]
A = randi(48,10)
s = size(A);
n = [3 10];
q = reshape(1:numel(A),s(1),[]);
rc = s - n + 1;
m = q(1:rc(1),1:rc(2));
I = randperm(numel(m));
p = m(I(1));
out = A(rem(p-1,s(1))+(1:n(1)),ceil(p/s(1))+(0:n(2)-1))

5 Commenti

kash
kash il 13 Gen 2012
andrei i get error
Error using ==> randperm
Too many input arguments.
Error in ==> Untitled2 at 7
p = m(randperm(numel(m),1));
Andrei Bobrov
Andrei Bobrov il 13 Gen 2012
corrected
That code *is* syntactically correct; see http://www.mathworks.com/help/techdoc/ref/randperm.html
p = randperm(n,k) returns a row vector containing k unique integers selected randomly from 1 to n inclusive.
If you receive an error at that line, it suggests that your version of MATLAB predates that facility.
I do not understand andrei's code at the moment, so I cannot say whether that was the syntax he intended to use.
kash
kash il 13 Gen 2012
thanks andrei,i did not get as i desired,ur output is continious 3 rows, but i neeed as distinct values...i.e
for ex first row values
38
10
19
that is i dont need continuous values,please help
Andrei Bobrov
Andrei Bobrov il 13 Gen 2012
two last rows of my code
p = m(I(1:n(1)));
out = A(p,ceil(p(1)/s(1))+(0:n(2)-1))

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 13 Gen 2012
It looks to me as if the answer should just be
p = randperm(size(A,1));
out = A(p(1:3),:);

1 Commento

kash
kash il 13 Gen 2012
thanks walter ,this is answer am looking for

Accedi per commentare.

Categorie

Scopri di più su Sparse Matrices in Centro assistenza e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by