How store vector output in matrix row
Mostrar comentarios más antiguos
Hi,
I'm trying to write a program in order to store a vector output in a matrix like this:
for k=1:K % number of iterations
for i=1:Sg(i) % Sg is a vector line of K samples
index(i,:)= randsample(1:length(matFragt), Sg(i));% matFragt is a KxK matrix
end
end
What i want is to randomly select (Sg(i)) samples in the matFragt row matrix and store each iteration in a matrix. this proposition gives an error:
" Subscripted assignment dimension mismatch."
I tried to create a cell but it gives me false result
Can any one help me please.
3 comentarios
Walter Roberson
el 20 de En. de 2019
If your Sg values are not all the same, then the first time you get to an Sg(i) that is not the same as the previous Sg(i-1) then the length of the random vector will be different than what is already stored, and you would have problems storing the result into index(i,:) because the row size would not be the same as the previous row.
oufouanas
el 20 de En. de 2019
Walter Roberson
el 20 de En. de 2019
You have a problem in your limit in your for i loop: you have the upper bound as Sg(i) but i has not yet been assigned a value.
It seems strange to me that the number of times you want to generate random samples just happens to be the same as the number of random samples you want to generate.
Respuestas (1)
Walter Roberson
el 20 de En. de 2019
nFrag = length(matFragt);
nSG = length(Sg);
B = cell(K, nSG);
for n = 1 : K
for i = 1 : nSG
B{n, i} = randperm(nFrag, Sg(i));
end
end
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!