Saving vectors from a loop into a matrix
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Changoleon
am 13 Nov. 2016
Bearbeitet: Walter Roberson
am 13 Nov. 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 Kommentare
Changoleon
am 13 Nov. 2016
Hi Kjones.
Could you explain your question with a simplified example? I am having trouble understanding what the problem is.
Yours Sina
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!