Filter löschen
Filter löschen

Save values in the middle of a loop

2 Ansichten (letzte 30 Tage)
Carlos
Carlos am 26 Mär. 2014
Beantwortet: Marta Salas am 26 Mär. 2014
Hello, I'm coding an infinite loop that will be shooting photos every X minutes. The problem is that I need that it save the rows every time it has one, but the program only save in the workspace when the function has finished (I've put only 3 photos for seeing the result). Is there any way to keep updating every 30minutes in the workspace my matrix?
Thanks. Heres is my code:
function CalculaParticulas
vid = videoinput('winvideo', 1,'I420_1280x720');
set(vid,'ReturnedColorSpace','grayscale');
Densidad=1000;
VolumenMAX=pi*1000/(8E18);
VolumenMIN=pi*15.625/(8E18);
Caudal=0.01; %m3/min
i=1;
pause(2);%Dejamos 32 minutos de margen antes de empezar (en segundos)
while (1);
img{i} = getsnapshot(vid);
fname = ['img' num2str(i)];%que nombre le ponemos al archivo
imwrite(img{i}, fname, 'jpg');%guardar el archivo con formato
pause(2);%paramos 3minutos entre foto y análisis
img{i} = imread(['img' num2str(i)]);
% %imshow(img1)% Si queremos ver la imagen original
img2{i}=im2bw(img{i},graythresh(img{i}));
img2{i}=~img2 {i};
B=bwboundaries(img2 {i});
NumberOfParticle(i)=length(B);
% disp(['Hay ', num2str(NumberOfParticle), ' partículas'])
%hold on
%for k = 1:length(B)
%boundary = B{k};
%plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2);
%end
Concentracion(i,1)=NumberOfParticle(i)*VolumenMAX*Densidad/Caudal
Concentracion(i,2)=NumberOfParticle(i)*VolumenMIN*Densidad/Caudal
Concentracion(i,3)=(Concentracion(i,1)+Concentracion(i,2))/2
% assignin('base','Concentracion',Concentracion);
i=i+1;
pause(5); %esperamos 27'
if i==3;
break;
end
end

Akzeptierte Antwort

Marta Salas
Marta Salas am 26 Mär. 2014

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by