Saving vectors from a loop into a matrix
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have this code that I made and I would like to save my final vector as a row in a matrix as I would like to plot the averages. I would like this matrix to consist of each row representing a run at a different H value where the H values change from R>0.1 up until R>0.9. How can I do this automatically because I don't want to change my matrix A so it would need to be done in one run?
A=createsrandomnetwork(100,5); %Network Matrix
I=zeros(100,1);
positions=[1,1];
I(positions)=1;
v=zeros(1,100); %Vector which proportion value will be saved into
n=numel(I); %n=number of array elements
v(1)=nnz(I)/n; %At time 0 the proportion infected (nnz=number of non zero elements in I)
for i=1:100
a = rand(100);
R = triu(a) + triu(a,1)';
H=R>0.5; %Matrix with % chance of passing on infection
P=A.*H; %New Network Matrix including the probability
P(logical(eye(size(P)))) = 0; %makes sure the diagonal is 0 then people can recover
I=P*I; %New Network Matrix times the Vector of Infected
v(i)=nnz(I)/n %Proportion infected at time i
end
Thank you
0 comentarios
Respuestas (1)
Changoleon
el 13 de Nov. de 2016
Editada: Walter Roberson
el 13 de Nov. de 2016
Hi. This is a very simplified solution, I believe you should be able to modify this code.
h=5;
for i=1:h
x(i) = i * 10;
s(i,:) = [i,x(i)];
end
Sina
2 comentarios
Changoleon
el 13 de Nov. de 2016
Hi Kjones.
Could you explain your question with a simplified example? I am having trouble understanding what the problem is.
Yours Sina
Ver también
Categorías
Más información sobre Operating on Diagonal Matrices 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!