MATLAB Answers

Decrease time to upload a figure

1 view (last 30 days)
Jorge Pascual
Jorge Pascual on 12 Dec 2019
Commented: Philippe Lebel on 12 Dec 2019
Hi everyone,
I am traying to develop an instrumented insole. I have 5 sensor, where I am measuring the change of voltage that it is generated when the pressure in the sensor change. As the sensor is obviolsy only in one pixel, I want to simulate that the pressure is decreasing around 3-4cm, that following my calcules are about 100pixels.
Pressure_points is a function where I enter the foot image, the radius that I have mentioned (95 pixels in this case), Paux are the coordinates of the five sensors and S are their voltage value, then I obtain an image which name es Pedobarography.
So first of all I start reading the voltage values, and if they are cero, I represent the simple foot, waiting in the second 'while', in order to not repeat every time the same figure. When a chagne in the voltage values is deected in any sensor, the process is repeated, but here is the problem. I have cheked that the function Pressure_points is not the problem because without drawing the heatmap it runs quickly, but when I try to upload the foot heatmap with the sensor changes, it runs very slow because it has to draw everything again.
To sum up, is there any way to draw the changes in the same heatmap quickly, to have these change in real time.
Thanks for your attention.
Jorge.
load Paux.mat;
while bt.Status == 'open'
M=0;
[s1,s2,s3,s4,s5]=Voutput(bt);
if s1==0 && s2==0 && s3==0 && s4==0 && s5==0
S=zeros(1,5);
%Locate the pressure sensor, and the pressure created in each of them
R=1;
[Pedobarography]=Pressure_Points(K1,R,Paux,S);
%Pressure is drawn in mV
[X, h] = contourf(Pedobarography,'LevelList',[0.1:1]);
set(gca, 'YDir','reverse')
colorbar
caxis([0 100])
drawnow
end
while s1==0 && s2==0 && s3==0 && s4==0 && s5==0
[s1,s2,s3,s4,s5]=Voutput(bt);
M=M+1
end
while s1>0 || s2>0 || s3>0 || s4>0 || s5>0
[s1,s2,s3,s4,s5]=Voutput(bt);
S=[s1;s2;s3;s4;s5];
% Locate the pressure sensor, and the pressure created in each of them
R=95;
[Pedobarography]=Pressure_Points(K1,R,Paux,S);
% Pressure is drawn in mV
[X, h] = contourf(Pedobarography,'LevelList',[0.1:20:max(S)]);
set(gca, 'YDir','reverse')
colorbar
caxis([0 max(S)])
drawnow
end
end

  4 Comments

Show 1 older comment
Philippe Lebel
Philippe Lebel on 12 Dec 2019
I read too quickly your code and had an heart attack when i read
Pedobarography
Jorge Pascual
Jorge Pascual on 12 Dec 2019
Thank you Looky, I'm going to try it.
Why Phillipe?
Philippe Lebel
Philippe Lebel on 12 Dec 2019
Starts with "pedo" and ends in "ography". read quickly skipped the middle of the word and made me read twice haha

Sign in to comment.

Answers (1)

Philippe Lebel
Philippe Lebel on 12 Dec 2019
Edited: Philippe Lebel on 12 Dec 2019
In addition to @Looky 's answer, try to remove the
set(gca, 'YDir','reverse')
from the while loop, I'm pretty sure you only need to do it once.
Maybe set a flag in the while loop to call it on the first iteration.
Samething for
colorbar
and
caxis

  2 Comments

Jorge Pascual
Jorge Pascual on 12 Dec 2019
I thought the same, I tryed differents things to do it, but I dind't properly, how would do you that?
Philippe Lebel
Philippe Lebel on 12 Dec 2019
Publish sample data that works with your code. Ill look into it tomorrow.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!