Borrar filtros
Borrar filtros

How do I calculate the proportion of 1s in Vector I at each time step and how to store this data in a vector?

2 visualizaciones (últimos 30 días)
How do I calculate the proportion of 1s(infected) in my vector I at each loop. Is there a way of storing this information? as when I increase my matrix to 100x100 it will be helpful to have the proportion at each loop outputted somewhere which is easy to read.
A=[1,1,0;1,1,1;0,1,1] %Network Matrix
I=[1;0;0] %Vector of Infected at i=0
for i=1:2 %Calculates those infected at i=1 and i=2
I=A*I %Network Matrix times vector at the different times
I>0 %True/False Check: 0=not infected, 1=infected
end
Thank you

Respuesta aceptada

Massimo Zanetti
Massimo Zanetti el 9 de Oct. de 2016
Editada: Massimo Zanetti el 9 de Oct. de 2016
Given a vector of 1s and 0s, you can divide the number of 1s by the overall number of elements. The nnz function computes the number of non-zero elements in array, so:
I = [1,1,0,1,1,1,0,1,1] ;
n = numel(I);
proportion = nnz(I)/n;

Más respuestas (0)

Categorías

Más información sobre Operating on Diagonal Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by