
Inicializar matrices 3D de forma vectorizada a partir de los valores de otras matrices 3D
Publicado por García (42 intervenciones) el 01/01/2015 20:30:25
Quiero inicializar matrices de forma vectorizada a partir de que los valores de una determinada matriz sean "0" o "1". Me gustaría la alternativa a los bucles for, para hacer, por ejemplo:
Muchas gracias,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Em=rand(3,7,2);
u=rand(3,7,2);
R=rand(3,7,2);
Pg=zeros(3,7,2);
K=zeros(3,7,2);
p=0.45;
perc=0; % Podría tomar valores 0 o 1
R(R(:,:,:)<=p)=1,R(R(:,:,:)~=1)=0;
for k=1:size(R,3)
for j=1:size(R,2)
for i=1:size(R,1)
%Si es igual a cero calculamos la nueva probabilidad de ser
%ocupado por un ión
if R(i,j,k)==0 %1
%El campo eléctrico será el calculado anteriormente con
%la función campo eléctrico
F=Em(i,j,k);
%Temperatura calculada en el instante anterior con la
%función heat
T=u(i,j,k);
format long;
%Dependiendo de si percola o no utilizaremos diferente
%parametro de ajuste Go y G1.
if(perc==0)
Pg(i,j,k)=F/T;
else
Pg(i,j,k)=F*T;
end
end
%En el caso de que ya esté ocupado la probalidad es 1.
if R(i,j,k)==1
Pg(i,j,k)=1;
end
end
end
end
Muchas gracias,
Valora esta pregunta


0