Saving output of for loop in array
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I am trying to save the output of my for loop in an array. Each output will consist of permutations of a previously defined array. I need to save the new array as consisting of my output in a single array.
The code is
Pload = linspace (1,2,4)
For i= eye(10)
P=Pload(randperm(length(Pload)
End
Now I'm trying to save the output in a new matrix.
Trying
Pnew(i,:)=P
Returns an error "index in position I is invalid"
Kindly help
0 comentarios
Respuestas (2)
Aquatris
el 28 de Sept. de 2018
Editada: Aquatris
el 28 de Sept. de 2018
There are some mistakes and unclear parts in your code. However, using your code, you can save it as;
Pload = linspace (1,2,4)
for i= 1:10
P(i,:)=Pload(randperm(length(Pload)))
end
Unclear part: why are you calling "randperm" function with "length(Pload)" why are you calling "for i = eye(10)"
2 comentarios
Aquatris
el 28 de Sept. de 2018
So since you want to convert the 1x4 to 1x40, you should do something like ;
Pload = linspace (1,2,4);
for i= 1:10
index(1+(i-1)*length(Pload):i*length(Pload)) = randperm(length(Pload));
end
Pnew = Pload(index);
Since the Pnew are possible solutions, it might be more convenient to store it as 10x4 matrix instead, in which case you can use below code;
for j =1:10;
Pnew2(j,:) = Pload(index(1+(j-1)*length(Pload):j*length(Pload)));
end
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!