Category: News
Out of Memory during serialization of the subsystem data – reinforcement learning
Hi, during training (reinforcement learning), agents aren’t saved properly and this warning is given. What can be done to fix this? Training is done with parallel processing.Hi, during training (reinforcement learning), agents aren’t saved properly and this warning is given. What can be done to fix this? Training is done with parallel processing. Hi, during training (reinforcement learning), agents aren’t saved properly and this warning is given. What can be done to fix this? Training is done with parallel processing. reinforcement learning MATLAB Answers — New Questions
function pdepe coder generation
Hi all,
I am trying to generate a dynamic library file by using ‘coder’. When I trying to do it, there is an information said that the function ‘pdepe’ is not supported in code generation. I am wondering if there is any solution to it like a replacement of the ‘pdepe’ function or some other settings?
Thank you in advanceHi all,
I am trying to generate a dynamic library file by using ‘coder’. When I trying to do it, there is an information said that the function ‘pdepe’ is not supported in code generation. I am wondering if there is any solution to it like a replacement of the ‘pdepe’ function or some other settings?
Thank you in advance Hi all,
I am trying to generate a dynamic library file by using ‘coder’. When I trying to do it, there is an information said that the function ‘pdepe’ is not supported in code generation. I am wondering if there is any solution to it like a replacement of the ‘pdepe’ function or some other settings?
Thank you in advance code generation, pdepe, matlab, coder MATLAB Answers — New Questions
complex gaussian noise generation
how can i generate a complex gaussian noise with zero mean and some variance in matlab?how can i generate a complex gaussian noise with zero mean and some variance in matlab? how can i generate a complex gaussian noise with zero mean and some variance in matlab? a, f MATLAB Answers — New Questions
error with configuring android studio with matlab
So i have been trying to configure matlab to work with android studio for a project and i came across Simulink Support Package for Android Devices ,but when i try to configure it i get this error message. Does anyone know how to fix this
Build App
A problem occurred configuring root project ‘TestApp’. > Could not open cp_proj generic class cache for build file ‘C:UsersUserAppDataLocalTemptpee9cd55b_8ffa_4e98_82dc_4f945f5ab51cTestAppbuild.gradle’ (C:UsersUser.gradlecaches7.5scripts56lbh5pj36js9453y7f1h6iim). > BUG! exception in phase ‘semantic analysis’ in source unit ‘_BuildScript_’ Unsupported class file major version 65 *So i have been trying to configure matlab to work with android studio for a project and i came across Simulink Support Package for Android Devices ,but when i try to configure it i get this error message. Does anyone know how to fix this
Build App
A problem occurred configuring root project ‘TestApp’. > Could not open cp_proj generic class cache for build file ‘C:UsersUserAppDataLocalTemptpee9cd55b_8ffa_4e98_82dc_4f945f5ab51cTestAppbuild.gradle’ (C:UsersUser.gradlecaches7.5scripts56lbh5pj36js9453y7f1h6iim). > BUG! exception in phase ‘semantic analysis’ in source unit ‘_BuildScript_’ Unsupported class file major version 65 * So i have been trying to configure matlab to work with android studio for a project and i came across Simulink Support Package for Android Devices ,but when i try to configure it i get this error message. Does anyone know how to fix this
Build App
A problem occurred configuring root project ‘TestApp’. > Could not open cp_proj generic class cache for build file ‘C:UsersUserAppDataLocalTemptpee9cd55b_8ffa_4e98_82dc_4f945f5ab51cTestAppbuild.gradle’ (C:UsersUser.gradlecaches7.5scripts56lbh5pj36js9453y7f1h6iim). > BUG! exception in phase ‘semantic analysis’ in source unit ‘_BuildScript_’ Unsupported class file major version 65 * android studio MATLAB Answers — New Questions
how to set the browser of webread function?
Hi Matlab,
I plan to use webread to get the data from a website. I can open the website in Chrome, yet I get the message "The currently used browser has security risks". It seems the website prevents the default matlab browser to read the data. Is it possible to change the browser used by webread to Chrome?Hi Matlab,
I plan to use webread to get the data from a website. I can open the website in Chrome, yet I get the message "The currently used browser has security risks". It seems the website prevents the default matlab browser to read the data. Is it possible to change the browser used by webread to Chrome? Hi Matlab,
I plan to use webread to get the data from a website. I can open the website in Chrome, yet I get the message "The currently used browser has security risks". It seems the website prevents the default matlab browser to read the data. Is it possible to change the browser used by webread to Chrome? webread, browser MATLAB Answers — New Questions
Fixed final time and fixed final state optimal control problem
Hello, someboddy help me please with this optimal control problem of fixed end time and fixed end point using Pontryagin Minimum Principle
State equation
dx1(t)/dt = – (1/N)*d*x1(t)*x3(t) – u1*x1(t)
dx2(t)/dt = (1/N)*x1(t)*x3(t) – a*x2(t) – u2*x2(t)
dx3(t)/dt = a*x2(t) – b*x3(t) – u3*x3(t)
dx4(t)/dt = b*x3(t) – u4*x4(t)
with N=651
a=0.2
b=0.3
d=0.5
x1(0)=651 x1(T)=148
x2(0)=279 x2(T)=85
x3(0)=130 x3(T)=80
x4(0)=75 x4(T)=252
with T= 29
cost function minimize J = integral from 0 to 29 of 0.5*x1^2 + 0.5*x2^2 + 0.5*x3^2 + 0.5*x4^2 + 0.5*u1^2 + 0.5*u2^2 + 0.5*u3^2 + 0.5*u4^2
please help me with matlab coding
thank you very much
I appreciate for your helpHello, someboddy help me please with this optimal control problem of fixed end time and fixed end point using Pontryagin Minimum Principle
State equation
dx1(t)/dt = – (1/N)*d*x1(t)*x3(t) – u1*x1(t)
dx2(t)/dt = (1/N)*x1(t)*x3(t) – a*x2(t) – u2*x2(t)
dx3(t)/dt = a*x2(t) – b*x3(t) – u3*x3(t)
dx4(t)/dt = b*x3(t) – u4*x4(t)
with N=651
a=0.2
b=0.3
d=0.5
x1(0)=651 x1(T)=148
x2(0)=279 x2(T)=85
x3(0)=130 x3(T)=80
x4(0)=75 x4(T)=252
with T= 29
cost function minimize J = integral from 0 to 29 of 0.5*x1^2 + 0.5*x2^2 + 0.5*x3^2 + 0.5*x4^2 + 0.5*u1^2 + 0.5*u2^2 + 0.5*u3^2 + 0.5*u4^2
please help me with matlab coding
thank you very much
I appreciate for your help Hello, someboddy help me please with this optimal control problem of fixed end time and fixed end point using Pontryagin Minimum Principle
State equation
dx1(t)/dt = – (1/N)*d*x1(t)*x3(t) – u1*x1(t)
dx2(t)/dt = (1/N)*x1(t)*x3(t) – a*x2(t) – u2*x2(t)
dx3(t)/dt = a*x2(t) – b*x3(t) – u3*x3(t)
dx4(t)/dt = b*x3(t) – u4*x4(t)
with N=651
a=0.2
b=0.3
d=0.5
x1(0)=651 x1(T)=148
x2(0)=279 x2(T)=85
x3(0)=130 x3(T)=80
x4(0)=75 x4(T)=252
with T= 29
cost function minimize J = integral from 0 to 29 of 0.5*x1^2 + 0.5*x2^2 + 0.5*x3^2 + 0.5*x4^2 + 0.5*u1^2 + 0.5*u2^2 + 0.5*u3^2 + 0.5*u4^2
please help me with matlab coding
thank you very much
I appreciate for your help control, pontryagin MATLAB Answers — New Questions
Two dimensional instantenious velocity field of an axisimetric turbulent free jet is provided in the file Jet_0001.txt. The jet nozzel diameter is Djet = 0.01 m and the centerline of the jet is located at y0 = 0.25 m. The jet velocity at the nozzle i
Two dimensional instantenious velocity field of an axisimetric turbulent free jet is provided in the file Jet_0001.txt. The jet nozzel diameter is Djet = 0.01 m and the centerline of the jet is located at y0 = 0.25 m. The jet velocity at the nozzle is Ujet = 3 m/s. Velocity data is obtained using particle image velocimetry (PIV) technique in the central plane of the jet. The data file consists of four columns organized as follows x-coordinate (m) y-coordinate (m) u-velocity (uins, m/s) v-velocity (vins, m/s) Note: The size of the array is 127 × 127 = 16129 Using MATLAB or any other software available a) Plot the instantenious velocity vector field in x-y plane. Normalize x, and y axis with Djet. b) Plot the contours of the the streamwise velocity, uins /Ujet and show the colormap with appropriate labels. c) Where is the maximum uins located? Explain. d) Calculate the vorticity component z. For this purpose, develop a code to calculate z numerically. Use the finite diffenrece approximation to calculate velocity gradients. Submit your code and comment on the regions of high vorticity.Two dimensional instantenious velocity field of an axisimetric turbulent free jet is provided in the file Jet_0001.txt. The jet nozzel diameter is Djet = 0.01 m and the centerline of the jet is located at y0 = 0.25 m. The jet velocity at the nozzle is Ujet = 3 m/s. Velocity data is obtained using particle image velocimetry (PIV) technique in the central plane of the jet. The data file consists of four columns organized as follows x-coordinate (m) y-coordinate (m) u-velocity (uins, m/s) v-velocity (vins, m/s) Note: The size of the array is 127 × 127 = 16129 Using MATLAB or any other software available a) Plot the instantenious velocity vector field in x-y plane. Normalize x, and y axis with Djet. b) Plot the contours of the the streamwise velocity, uins /Ujet and show the colormap with appropriate labels. c) Where is the maximum uins located? Explain. d) Calculate the vorticity component z. For this purpose, develop a code to calculate z numerically. Use the finite diffenrece approximation to calculate velocity gradients. Submit your code and comment on the regions of high vorticity. Two dimensional instantenious velocity field of an axisimetric turbulent free jet is provided in the file Jet_0001.txt. The jet nozzel diameter is Djet = 0.01 m and the centerline of the jet is located at y0 = 0.25 m. The jet velocity at the nozzle is Ujet = 3 m/s. Velocity data is obtained using particle image velocimetry (PIV) technique in the central plane of the jet. The data file consists of four columns organized as follows x-coordinate (m) y-coordinate (m) u-velocity (uins, m/s) v-velocity (vins, m/s) Note: The size of the array is 127 × 127 = 16129 Using MATLAB or any other software available a) Plot the instantenious velocity vector field in x-y plane. Normalize x, and y axis with Djet. b) Plot the contours of the the streamwise velocity, uins /Ujet and show the colormap with appropriate labels. c) Where is the maximum uins located? Explain. d) Calculate the vorticity component z. For this purpose, develop a code to calculate z numerically. Use the finite diffenrece approximation to calculate velocity gradients. Submit your code and comment on the regions of high vorticity. fluid mechanics MATLAB Answers — New Questions
Can i simulate cloud environment using MATLAB?
I want to simulate cloud environment using MATLAB and implement some scheduling algorithms.I want to simulate cloud environment using MATLAB and implement some scheduling algorithms. I want to simulate cloud environment using MATLAB and implement some scheduling algorithms. cloud computing, scheduling algorithms MATLAB Answers — New Questions
i have a matlab code with 3 for loops, in last for loop , there is threshold based penalization. i want trace some variables in that code and compare with plot
respected professor.
i have code with 3 for loops. 1st for delta (which gives different plots in the same figure) 2nd for eps ( which is on x axis of figure) 3rd for Nt, giving different alpha .and in the 3rd loop pout1 and pout2 is also found which is used in threshold based penalization.
i am giving the threshold based penalization problem as screenshot as well as the figure .
i have the code for generating the figure. and i am attaching the code also.
i want to trace the value of delta, eps , Nt, alpha, pout1, pout2 and get the new alpha which is in the plot and compare these values from plot.
Thank you in advancerespected professor.
i have code with 3 for loops. 1st for delta (which gives different plots in the same figure) 2nd for eps ( which is on x axis of figure) 3rd for Nt, giving different alpha .and in the 3rd loop pout1 and pout2 is also found which is used in threshold based penalization.
i am giving the threshold based penalization problem as screenshot as well as the figure .
i have the code for generating the figure. and i am attaching the code also.
i want to trace the value of delta, eps , Nt, alpha, pout1, pout2 and get the new alpha which is in the plot and compare these values from plot.
Thank you in advance respected professor.
i have code with 3 for loops. 1st for delta (which gives different plots in the same figure) 2nd for eps ( which is on x axis of figure) 3rd for Nt, giving different alpha .and in the 3rd loop pout1 and pout2 is also found which is used in threshold based penalization.
i am giving the threshold based penalization problem as screenshot as well as the figure .
i have the code for generating the figure. and i am attaching the code also.
i want to trace the value of delta, eps , Nt, alpha, pout1, pout2 and get the new alpha which is in the plot and compare these values from plot.
Thank you in advance threshold based penalization, tracing code MATLAB Answers — New Questions
Why there’s opposite fit results phenomenon between the oddnomial and the evennmnial?
p=polyfit(RANKING,Total,4);
y=polyval(p,Total);
plot(y)p=polyfit(RANKING,Total,4);
y=polyval(p,Total);
plot(y) p=polyfit(RANKING,Total,4);
y=polyval(p,Total);
plot(y) polyfit MATLAB Answers — New Questions
What are the point locations for EHfields() function output?
When I run the EHfields function like this:
[e,h] = EHfields(antenna_object,frequency)
The size of the output e is 3 * 441. Where 3 is the x,y and z component of the computed electric field.
When I run the function like this:
[eh,~]=EHfields(antenna_object,frequency, Polarization="H");
The size of the output eh is 1 * 441. Where 1 is the horizontal compoenent of the computed electric field.
My question is the 441. I am guessing that it is the index of the points evaluated as a unit sphere around the antenna. But in what ordered are they counted?
From Antenna Toolbox Coordinate Sytem it could be that it is counted from the azimuth angle from the positive x-axis to the vector’s orthogonal projection onto the xy plane, moving in the direction towards the y-axis and ranges from –180 and 180 degrees, and the elevation angle from the vector’s orthogonal projection on the xy plane toward the positive z-axis and ranges from –90 and 90 degrees.
But I don’t know for sure. I cannot find documentation clearifying how exactly are these points ordered, spaced and located. Perhaps a staff’s answer can be much helpful?
ThanksWhen I run the EHfields function like this:
[e,h] = EHfields(antenna_object,frequency)
The size of the output e is 3 * 441. Where 3 is the x,y and z component of the computed electric field.
When I run the function like this:
[eh,~]=EHfields(antenna_object,frequency, Polarization="H");
The size of the output eh is 1 * 441. Where 1 is the horizontal compoenent of the computed electric field.
My question is the 441. I am guessing that it is the index of the points evaluated as a unit sphere around the antenna. But in what ordered are they counted?
From Antenna Toolbox Coordinate Sytem it could be that it is counted from the azimuth angle from the positive x-axis to the vector’s orthogonal projection onto the xy plane, moving in the direction towards the y-axis and ranges from –180 and 180 degrees, and the elevation angle from the vector’s orthogonal projection on the xy plane toward the positive z-axis and ranges from –90 and 90 degrees.
But I don’t know for sure. I cannot find documentation clearifying how exactly are these points ordered, spaced and located. Perhaps a staff’s answer can be much helpful?
Thanks When I run the EHfields function like this:
[e,h] = EHfields(antenna_object,frequency)
The size of the output e is 3 * 441. Where 3 is the x,y and z component of the computed electric field.
When I run the function like this:
[eh,~]=EHfields(antenna_object,frequency, Polarization="H");
The size of the output eh is 1 * 441. Where 1 is the horizontal compoenent of the computed electric field.
My question is the 441. I am guessing that it is the index of the points evaluated as a unit sphere around the antenna. But in what ordered are they counted?
From Antenna Toolbox Coordinate Sytem it could be that it is counted from the azimuth angle from the positive x-axis to the vector’s orthogonal projection onto the xy plane, moving in the direction towards the y-axis and ranges from –180 and 180 degrees, and the elevation angle from the vector’s orthogonal projection on the xy plane toward the positive z-axis and ranges from –90 and 90 degrees.
But I don’t know for sure. I cannot find documentation clearifying how exactly are these points ordered, spaced and located. Perhaps a staff’s answer can be much helpful?
Thanks function, antenna, coordinate system MATLAB Answers — New Questions
interpolating from a 3D structure
Hi all
I have three vectors, named X,Y, and Z, related to the coordinates of a structure and also a vector named W showing the displacement of each node. My structure using scatter3 is like this. I’m gonna interpolate it to obtain an 3D image. How should I interpolate such an irregular shape?Hi all
I have three vectors, named X,Y, and Z, related to the coordinates of a structure and also a vector named W showing the displacement of each node. My structure using scatter3 is like this. I’m gonna interpolate it to obtain an 3D image. How should I interpolate such an irregular shape? Hi all
I have three vectors, named X,Y, and Z, related to the coordinates of a structure and also a vector named W showing the displacement of each node. My structure using scatter3 is like this. I’m gonna interpolate it to obtain an 3D image. How should I interpolate such an irregular shape? interpolate MATLAB Answers — New Questions
MATLAB Code Not Plotting Solution and Stuck on “Busy”
Hello,
I’m working on a MATLAB script to plot a solution, but the program gets stuck, continuously showing "Busy" in the status bar, and no plot is generated. I’ve checked my code for errors but haven’t found any obvious issues. What could be causing this behavior, and how can I resolve it?
Thank you for your help!
clear clc;
lambda1=0.4*1i;
lambda2 = 0; lambda3 =0; lambda4 = -1*1i; a =1; x =-0.001;
[A1, B2] = deal(1);
[A2, B1] = deal(0);
[A3, B4] = deal(1.2);
[A4, B3] = deal(1.5);
t = linspace(-10, 10, 800); % Adjust the range and number of points as needed
y = linspace(-10, 10, 800);
r1=zeros(length(x), length(y), length(t));
for k=1:length(x)
for l=1:length(t)
for m=1:length(y)
X1 = exp(-lambda1*a*y(m)*1i + t(l)*1i./(2*lambda1) + A1*(x(k) + y(m) + t(l)).^2);
X2 = exp(-lambda2*a*y(m)*1i + t(l)*1i./(2*lambda2) + A2*(x(k) + y(m) + t(l)).^2);
X3 = exp(-lambda3*a*y(m)*1i + t(l)*1i./(2*lambda3) + A3*(x(k) + y(m) + t(l)).^2);
X4 = exp(-lambda4*a*y(m)*1i + t(l)*1i./(2*lambda4) + A4*(x(k) + y(m) + t(l)).^2);
Y1 = exp(lambda1*a*y(m)*1i – t(l)*1i./(2*lambda1) + B1*(x(k) + y(m) + t(l)).^2);
Y2 = exp(lambda2*a*y(m)*1i – t(l)*1i./(2*lambda2) + B2*(x(k) + y(m) + t(l)).^2);
Y3 = exp(lambda3*a*y(m)*1i – t(l)*1i./(2*lambda3) + B3*(x(k) + y(m) + t(l)).^2);
Y4 = exp(lambda4*a*y(m)*1i – t(l)*1i./(2*lambda4) + B4*(x(k) + y(m) + t(l)).^2);
q2num = [X1 X2 X2 X4 0; Y1 Y2 Y3 Y4 0; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4 1; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4 0; X1./(lambda1.^2) X2./(lambda2.^2) X3./(lambda3.^2) X4./(lambda4.^2) 0];
den = [X1 X2 X2 X4; Y1 Y2 Y3 Y4; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4];
r1(l,m,k)= ((det(q2num)./det(den)));
end
end
end
[dr1dx, dr1dy, dr1dt] = gradient(r1);
dr1dx = dr1dx/mean(diff(x));
dr1dy = dr1dy/mean(diff(y));
dr1dt = dr1dt/mean(diff(t));
p1=a + 1i*(dr1dy – dr1dx);
figure (1)
surf(y,t,abs(p1));
view(45,60);Hello,
I’m working on a MATLAB script to plot a solution, but the program gets stuck, continuously showing "Busy" in the status bar, and no plot is generated. I’ve checked my code for errors but haven’t found any obvious issues. What could be causing this behavior, and how can I resolve it?
Thank you for your help!
clear clc;
lambda1=0.4*1i;
lambda2 = 0; lambda3 =0; lambda4 = -1*1i; a =1; x =-0.001;
[A1, B2] = deal(1);
[A2, B1] = deal(0);
[A3, B4] = deal(1.2);
[A4, B3] = deal(1.5);
t = linspace(-10, 10, 800); % Adjust the range and number of points as needed
y = linspace(-10, 10, 800);
r1=zeros(length(x), length(y), length(t));
for k=1:length(x)
for l=1:length(t)
for m=1:length(y)
X1 = exp(-lambda1*a*y(m)*1i + t(l)*1i./(2*lambda1) + A1*(x(k) + y(m) + t(l)).^2);
X2 = exp(-lambda2*a*y(m)*1i + t(l)*1i./(2*lambda2) + A2*(x(k) + y(m) + t(l)).^2);
X3 = exp(-lambda3*a*y(m)*1i + t(l)*1i./(2*lambda3) + A3*(x(k) + y(m) + t(l)).^2);
X4 = exp(-lambda4*a*y(m)*1i + t(l)*1i./(2*lambda4) + A4*(x(k) + y(m) + t(l)).^2);
Y1 = exp(lambda1*a*y(m)*1i – t(l)*1i./(2*lambda1) + B1*(x(k) + y(m) + t(l)).^2);
Y2 = exp(lambda2*a*y(m)*1i – t(l)*1i./(2*lambda2) + B2*(x(k) + y(m) + t(l)).^2);
Y3 = exp(lambda3*a*y(m)*1i – t(l)*1i./(2*lambda3) + B3*(x(k) + y(m) + t(l)).^2);
Y4 = exp(lambda4*a*y(m)*1i – t(l)*1i./(2*lambda4) + B4*(x(k) + y(m) + t(l)).^2);
q2num = [X1 X2 X2 X4 0; Y1 Y2 Y3 Y4 0; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4 1; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4 0; X1./(lambda1.^2) X2./(lambda2.^2) X3./(lambda3.^2) X4./(lambda4.^2) 0];
den = [X1 X2 X2 X4; Y1 Y2 Y3 Y4; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4];
r1(l,m,k)= ((det(q2num)./det(den)));
end
end
end
[dr1dx, dr1dy, dr1dt] = gradient(r1);
dr1dx = dr1dx/mean(diff(x));
dr1dy = dr1dy/mean(diff(y));
dr1dt = dr1dt/mean(diff(t));
p1=a + 1i*(dr1dy – dr1dx);
figure (1)
surf(y,t,abs(p1));
view(45,60); Hello,
I’m working on a MATLAB script to plot a solution, but the program gets stuck, continuously showing "Busy" in the status bar, and no plot is generated. I’ve checked my code for errors but haven’t found any obvious issues. What could be causing this behavior, and how can I resolve it?
Thank you for your help!
clear clc;
lambda1=0.4*1i;
lambda2 = 0; lambda3 =0; lambda4 = -1*1i; a =1; x =-0.001;
[A1, B2] = deal(1);
[A2, B1] = deal(0);
[A3, B4] = deal(1.2);
[A4, B3] = deal(1.5);
t = linspace(-10, 10, 800); % Adjust the range and number of points as needed
y = linspace(-10, 10, 800);
r1=zeros(length(x), length(y), length(t));
for k=1:length(x)
for l=1:length(t)
for m=1:length(y)
X1 = exp(-lambda1*a*y(m)*1i + t(l)*1i./(2*lambda1) + A1*(x(k) + y(m) + t(l)).^2);
X2 = exp(-lambda2*a*y(m)*1i + t(l)*1i./(2*lambda2) + A2*(x(k) + y(m) + t(l)).^2);
X3 = exp(-lambda3*a*y(m)*1i + t(l)*1i./(2*lambda3) + A3*(x(k) + y(m) + t(l)).^2);
X4 = exp(-lambda4*a*y(m)*1i + t(l)*1i./(2*lambda4) + A4*(x(k) + y(m) + t(l)).^2);
Y1 = exp(lambda1*a*y(m)*1i – t(l)*1i./(2*lambda1) + B1*(x(k) + y(m) + t(l)).^2);
Y2 = exp(lambda2*a*y(m)*1i – t(l)*1i./(2*lambda2) + B2*(x(k) + y(m) + t(l)).^2);
Y3 = exp(lambda3*a*y(m)*1i – t(l)*1i./(2*lambda3) + B3*(x(k) + y(m) + t(l)).^2);
Y4 = exp(lambda4*a*y(m)*1i – t(l)*1i./(2*lambda4) + B4*(x(k) + y(m) + t(l)).^2);
q2num = [X1 X2 X2 X4 0; Y1 Y2 Y3 Y4 0; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4 1; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4 0; X1./(lambda1.^2) X2./(lambda2.^2) X3./(lambda3.^2) X4./(lambda4.^2) 0];
den = [X1 X2 X2 X4; Y1 Y2 Y3 Y4; X1./lambda1 X2./lambda2 X3./lambda3 X4./lambda4; Y1./lambda1 Y2./lambda2 Y3./lambda3 Y4./lambda4];
r1(l,m,k)= ((det(q2num)./det(den)));
end
end
end
[dr1dx, dr1dy, dr1dt] = gradient(r1);
dr1dx = dr1dx/mean(diff(x));
dr1dy = dr1dy/mean(diff(y));
dr1dt = dr1dt/mean(diff(t));
p1=a + 1i*(dr1dy – dr1dx);
figure (1)
surf(y,t,abs(p1));
view(45,60); surface, 3d plots MATLAB Answers — New Questions
How Can I Create More Than One Figure
I can tell Matlab to make a basic figure such as a plot of ‘x’ versus ‘y’, but when I tell Matlab to make more than one figure in the same script, it will delete my first figure when it makes the next one. Do I need to tell Matlab to save each figure after it creates it and before making the next one? or am I missing something very obvious?I can tell Matlab to make a basic figure such as a plot of ‘x’ versus ‘y’, but when I tell Matlab to make more than one figure in the same script, it will delete my first figure when it makes the next one. Do I need to tell Matlab to save each figure after it creates it and before making the next one? or am I missing something very obvious? I can tell Matlab to make a basic figure such as a plot of ‘x’ versus ‘y’, but when I tell Matlab to make more than one figure in the same script, it will delete my first figure when it makes the next one. Do I need to tell Matlab to save each figure after it creates it and before making the next one? or am I missing something very obvious? figure, subplot MATLAB Answers — New Questions
Change the material of th disque and the shaft
Hi every one ;
I’m just wanna ask you please, about including in a matlab code the change of matérials of the shaft and the disc, the bearing characteristics!!
even the unbalance.
nd thanks in advance !!Hi every one ;
I’m just wanna ask you please, about including in a matlab code the change of matérials of the shaft and the disc, the bearing characteristics!!
even the unbalance.
nd thanks in advance !! Hi every one ;
I’m just wanna ask you please, about including in a matlab code the change of matérials of the shaft and the disc, the bearing characteristics!!
even the unbalance.
nd thanks in advance !! materials, shaft charactéristics MATLAB Answers — New Questions
NaN values when attempting Motion Read for a UAV Scenario
I’m currently attempting to get platform or sensor related motion data from my UAV 3d scenario Simulink Model. Attached is the current block diagram:
I have the UAV scenario configuration block, the SImulation 3D scene configuration block, and the UAV Scenario Motion Read block, connected to my workspace as shown above. The UAV scenario block is configured for the singleUAVScenario function, which spawns a single quadrotor. The control part and this configuration were taken from an example in MATLAB’s documentation, so all bus, signal, and data blocks’ names are unchanged. When I run the model, initially the values are updating, as shown:
However, more or less after a single second passes in my simulation, for some reason, my data goes to NaN values for the rest of the simulation, no matter how long it is, as shown here:
Obviously, when I take the data to MATLAB using a To Workspace block, I have the same issue.
I’ve tried running another MATLAB example; quick access for that is this:
openExample(‘uav/SimulateUAVScenarioUsingScenarioBlocksExample’)
In that simulink model, the displays constantly update and there are no nan issues. Can anyone provide any answers? Sorry if it’s an easy fix, I don’t have too much experience in this particular area. Is it the sampling time, some inherent issue? I’m assuming that, according to the matlab documentation for the UAV scenario configuration block…
This block internally stores motion states from platforms and sensors in a global data store memory block as buses within a bus with a name specified in the Scenario motion bus name parameter.
That the motion parameters are automatically stored in this global data store memory block, and by using the read block, I can simply get the motion data. Do let me know if any additional information is needed, I can provide.
Note: Data goes to NaN after an exact second in simulation time has elapsed. No matter what the simulation step size is, the data seems constant except for the Position data for the first second, but instantly after, everything goes to NaN (except platform ID). The constant data also may be wrong, I suspect.I’m currently attempting to get platform or sensor related motion data from my UAV 3d scenario Simulink Model. Attached is the current block diagram:
I have the UAV scenario configuration block, the SImulation 3D scene configuration block, and the UAV Scenario Motion Read block, connected to my workspace as shown above. The UAV scenario block is configured for the singleUAVScenario function, which spawns a single quadrotor. The control part and this configuration were taken from an example in MATLAB’s documentation, so all bus, signal, and data blocks’ names are unchanged. When I run the model, initially the values are updating, as shown:
However, more or less after a single second passes in my simulation, for some reason, my data goes to NaN values for the rest of the simulation, no matter how long it is, as shown here:
Obviously, when I take the data to MATLAB using a To Workspace block, I have the same issue.
I’ve tried running another MATLAB example; quick access for that is this:
openExample(‘uav/SimulateUAVScenarioUsingScenarioBlocksExample’)
In that simulink model, the displays constantly update and there are no nan issues. Can anyone provide any answers? Sorry if it’s an easy fix, I don’t have too much experience in this particular area. Is it the sampling time, some inherent issue? I’m assuming that, according to the matlab documentation for the UAV scenario configuration block…
This block internally stores motion states from platforms and sensors in a global data store memory block as buses within a bus with a name specified in the Scenario motion bus name parameter.
That the motion parameters are automatically stored in this global data store memory block, and by using the read block, I can simply get the motion data. Do let me know if any additional information is needed, I can provide.
Note: Data goes to NaN after an exact second in simulation time has elapsed. No matter what the simulation step size is, the data seems constant except for the Position data for the first second, but instantly after, everything goes to NaN (except platform ID). The constant data also may be wrong, I suspect. I’m currently attempting to get platform or sensor related motion data from my UAV 3d scenario Simulink Model. Attached is the current block diagram:
I have the UAV scenario configuration block, the SImulation 3D scene configuration block, and the UAV Scenario Motion Read block, connected to my workspace as shown above. The UAV scenario block is configured for the singleUAVScenario function, which spawns a single quadrotor. The control part and this configuration were taken from an example in MATLAB’s documentation, so all bus, signal, and data blocks’ names are unchanged. When I run the model, initially the values are updating, as shown:
However, more or less after a single second passes in my simulation, for some reason, my data goes to NaN values for the rest of the simulation, no matter how long it is, as shown here:
Obviously, when I take the data to MATLAB using a To Workspace block, I have the same issue.
I’ve tried running another MATLAB example; quick access for that is this:
openExample(‘uav/SimulateUAVScenarioUsingScenarioBlocksExample’)
In that simulink model, the displays constantly update and there are no nan issues. Can anyone provide any answers? Sorry if it’s an easy fix, I don’t have too much experience in this particular area. Is it the sampling time, some inherent issue? I’m assuming that, according to the matlab documentation for the UAV scenario configuration block…
This block internally stores motion states from platforms and sensors in a global data store memory block as buses within a bus with a name specified in the Scenario motion bus name parameter.
That the motion parameters are automatically stored in this global data store memory block, and by using the read block, I can simply get the motion data. Do let me know if any additional information is needed, I can provide.
Note: Data goes to NaN after an exact second in simulation time has elapsed. No matter what the simulation step size is, the data seems constant except for the Position data for the first second, but instantly after, everything goes to NaN (except platform ID). The constant data also may be wrong, I suspect. uav toolbox, nan values, simulink MATLAB Answers — New Questions
How to import multiple .mat files into the same workspace
Hello,
I have multiple .mat files that contain different arrays.
These arrays have the same name in each .mat file; I need to open two or more .mat files to elaborate the data.
The problem is that the content of the most recent .mat file overwrites the previous one since the name of the arrays is always the same.
For example, let’s say I have test1.mat that contains:
accel
effort
gyro
and test2.mat that contains:
accel
effort
gyro
Is there a way to be able to load into the workspace the arrays coming from test1 and test2 at the same time?Hello,
I have multiple .mat files that contain different arrays.
These arrays have the same name in each .mat file; I need to open two or more .mat files to elaborate the data.
The problem is that the content of the most recent .mat file overwrites the previous one since the name of the arrays is always the same.
For example, let’s say I have test1.mat that contains:
accel
effort
gyro
and test2.mat that contains:
accel
effort
gyro
Is there a way to be able to load into the workspace the arrays coming from test1 and test2 at the same time? Hello,
I have multiple .mat files that contain different arrays.
These arrays have the same name in each .mat file; I need to open two or more .mat files to elaborate the data.
The problem is that the content of the most recent .mat file overwrites the previous one since the name of the arrays is always the same.
For example, let’s say I have test1.mat that contains:
accel
effort
gyro
and test2.mat that contains:
accel
effort
gyro
Is there a way to be able to load into the workspace the arrays coming from test1 and test2 at the same time? matlab, arrays, import MATLAB Answers — New Questions
Temperature determination difference between codes that should do the same thing!
So, I do research of laser heating metals. We have this code (main code) that separates each hotspot into different qudrants to analyze. Occacsionally, one quadrant nees to be excluded from the calculations (2nd code). So the main code, uses the LT (left top) as the focus for analyzing. The 2nd code, needs to do the analysis with LD (Left down) as the focus instead adn exclude everything that has to do with LT.
So the issue is: the tempeartures calculated from the 2nd code are 300 to 400 K too low. (pics of ffure with each code.). If you have any isight I would greatly appreciate it!
Here is the normal code:
clear;close all;
[filename, pathname, filterindex] = uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname = fullfile(pathname, filename);
mydata = importdata(fullname);
hotspot_ob=double(mydata);
scale= 120; % size of the box 90*90
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
%V_lt=140;H_lt=166;
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
%%find max for hotspot for later T correction Jie add on Mar2216, two ways:
%%neigther seem to work properly
%1st find the strongest point and make it as threshold–find corresponding
%intensities in other quadrants
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [hotspot_lt(mm,nn) hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_lt(countm,countn)-hotspot_lt(m_lt,n_lt)).^2 + (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_lt(mmm,nnn) hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%%
center_LT=[V_lt,H_lt];
center_LD=[V_ld,H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
% Define the bounds of the matrix
k_max = size(hotspot, 1);
l_max = size(hotspot, 2);
% Ensure the indices are within valid bounds
V_lt_start = max(V_lt-hscale, 1);
V_lt_end = min(V_lt+hscale, k_max);
H_lt_start = max(H_lt-hscale, 1);
H_lt_end = min(H_lt+hscale, l_max);
V_ld_start = max(V_ld-hscale, 1);
V_ld_end = min(V_ld+hscale, k_max);
H_ld_start = max(H_ld-hscale, 1);
H_ld_end = min(H_ld+hscale, l_max);
V_rt_start = max(V_rt-hscale, 1);
V_rt_end = min(V_rt+hscale, k_max);
H_rt_start = max(H_rt-hscale, 1);
H_rt_end = min(H_rt+hscale, l_max);
V_rd_start = max(V_rd-hscale, 1);
V_rd_end = min(V_rd+hscale, k_max);
H_rd_start = max(H_rd-hscale, 1);
H_rd_end = min(H_rd+hscale, l_max);
% Now extract the subarrays with valid indices
LT = hotspot(V_lt_start:V_lt_end, H_lt_start:H_lt_end);
LD = hotspot(V_ld_start:V_ld_end, H_ld_start:H_ld_end);
RT = hotspot(V_rt_start:V_rt_end, H_rt_start:H_rt_end);
RD = hotspot(V_rd_start:V_rd_end, H_rd_start:H_rd_end);
% Find New centers and update them
[center_RT_new,Cor_RT] = imagematching (hotspot,LT,center_RT,scale); % use LT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,LT,center_LD,scale);
[center_RD_new,Cor_RD] = imagematching (hotspot,LT,center_RD,scale);
center_LD=center_LD_new;
center_RT=center_RT_new;
center_RD=center_RD_new;
[inter_center_RT,Cor_RT] = intermatching (hotspot,LT,center_RT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,LT,center_LD_new,scale,subpixel);
[inter_center_RD,Cor_RD] = intermatching (hotspot,LT,center_RD_new,scale,subpixel);
center_LD=inter_center_LD;
center_RT=inter_center_RT;
center_RD=inter_center_RD;
Cor=[1 Cor_RT;Cor_LD Cor_RD];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_RT(1,1); H_rt=center_RT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_rt,YI_rt]=meshgrid(H_rt-hscale:H_rt+hscale,V_rt-hscale:V_rt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld); % update images
RT=interp2(hotspot,XI_rt,YI_rt);
RD=interp2(hotspot,XI_rd,YI_rd);
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LT);
for i=1:m
for j=1:n
X=[1/lamda_LT 1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
% X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
Y=[Wien_LT(i,j) Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
% Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg); %% bint is 95% confidence level of T
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1); %% T_inv(1,1) is for T
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb); %% T_inv(2,1) is for emissivity
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2; %% difference between upper limit of T – lower limit of T
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_LT,Indexing] = max(LT(:))
max_RD = max(max(RD));max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [LT(Indexing) RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (LT(countm,countn)-max_LT).^2 + (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [LT(m4,n4) RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [LT(m4,:); RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [LT(:,n4)’; RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
%%
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,1)
imagesc(LT);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
Image result:
2nd code:
clear; close all
[filename, pathname, filterindex]=uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname=fullfile(pathname, filename);
mydata=importdata(fullname);
hotspot_ob=double(mydata);
scale=120;
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
%V_lt=98; H_lt=150;
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [ hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%V_lt=126; H_lt=176;
%V_rt=125; H_rt=565;
%V_ld=398; H_ld=179;
%V_rd=388; H_rd=580;
center_LT=[V_lt,H_lt];
center_LD=[V_ld, H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
LT=hotspot(V_lt-hscale:V_lt+hscale,H_lt-hscale:H_lt+hscale);
LD=hotspot(V_ld-hscale:V_ld+hscale,H_ld-hscale:H_ld+hscale);
RT=hotspot(V_rt-hscale:V_rt+hscale,H_rt-hscale:H_rt+hscale);
RD=hotspot(V_rd-hscale:V_rd+hscale,H_rd-hscale:H_rd+hscale);
% Find New centers and update them
[center_LT_new,Cor_LT] = imagematching (hotspot,RD,center_RT,scale); % use RT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,RD,center_LD,scale);
[center_RT_new,Cor_RT] = imagematching (hotspot,RD,center_RD,scale);
center_LD=center_LD_new;
center_LT=center_LT_new;
center_RT=center_RT_new;
[inter_center_LT,Cor_LT] = intermatching (hotspot,RD,center_LT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,RD,center_LD_new,scale,subpixel);
[inter_center_RT,Cor_RT] = intermatching (hotspot,RD,center_RT_new,scale,subpixel);
center_LD=inter_center_LD;
center_LT=inter_center_LT;
center_RT=inter_center_RT;
Cor=[1 Cor_LT;Cor_LD Cor_RT];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_LT(1,1); H_lt=center_LT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_lt,YI_lt]=meshgrid(H_lt-hscale:H_lt+hscale,V_lt-hscale:V_lt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld,’spline’); % update images
LT=interp2(hotspot,XI_lt,YI_lt,’spline’);
RD=interp2(hotspot,XI_rd,YI_rd,’spline’);
% Assuming you want to exclude 580 nm
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
%Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LD);
for i=1:m
for j=1:n
X=[1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
%X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
%Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
Y=[Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg);
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1);
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb);
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2;
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_RD,Indexing] = max(RD(:))
max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [ RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [ RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [ RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
image result:So, I do research of laser heating metals. We have this code (main code) that separates each hotspot into different qudrants to analyze. Occacsionally, one quadrant nees to be excluded from the calculations (2nd code). So the main code, uses the LT (left top) as the focus for analyzing. The 2nd code, needs to do the analysis with LD (Left down) as the focus instead adn exclude everything that has to do with LT.
So the issue is: the tempeartures calculated from the 2nd code are 300 to 400 K too low. (pics of ffure with each code.). If you have any isight I would greatly appreciate it!
Here is the normal code:
clear;close all;
[filename, pathname, filterindex] = uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname = fullfile(pathname, filename);
mydata = importdata(fullname);
hotspot_ob=double(mydata);
scale= 120; % size of the box 90*90
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
%V_lt=140;H_lt=166;
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
%%find max for hotspot for later T correction Jie add on Mar2216, two ways:
%%neigther seem to work properly
%1st find the strongest point and make it as threshold–find corresponding
%intensities in other quadrants
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [hotspot_lt(mm,nn) hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_lt(countm,countn)-hotspot_lt(m_lt,n_lt)).^2 + (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_lt(mmm,nnn) hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%%
center_LT=[V_lt,H_lt];
center_LD=[V_ld,H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
% Define the bounds of the matrix
k_max = size(hotspot, 1);
l_max = size(hotspot, 2);
% Ensure the indices are within valid bounds
V_lt_start = max(V_lt-hscale, 1);
V_lt_end = min(V_lt+hscale, k_max);
H_lt_start = max(H_lt-hscale, 1);
H_lt_end = min(H_lt+hscale, l_max);
V_ld_start = max(V_ld-hscale, 1);
V_ld_end = min(V_ld+hscale, k_max);
H_ld_start = max(H_ld-hscale, 1);
H_ld_end = min(H_ld+hscale, l_max);
V_rt_start = max(V_rt-hscale, 1);
V_rt_end = min(V_rt+hscale, k_max);
H_rt_start = max(H_rt-hscale, 1);
H_rt_end = min(H_rt+hscale, l_max);
V_rd_start = max(V_rd-hscale, 1);
V_rd_end = min(V_rd+hscale, k_max);
H_rd_start = max(H_rd-hscale, 1);
H_rd_end = min(H_rd+hscale, l_max);
% Now extract the subarrays with valid indices
LT = hotspot(V_lt_start:V_lt_end, H_lt_start:H_lt_end);
LD = hotspot(V_ld_start:V_ld_end, H_ld_start:H_ld_end);
RT = hotspot(V_rt_start:V_rt_end, H_rt_start:H_rt_end);
RD = hotspot(V_rd_start:V_rd_end, H_rd_start:H_rd_end);
% Find New centers and update them
[center_RT_new,Cor_RT] = imagematching (hotspot,LT,center_RT,scale); % use LT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,LT,center_LD,scale);
[center_RD_new,Cor_RD] = imagematching (hotspot,LT,center_RD,scale);
center_LD=center_LD_new;
center_RT=center_RT_new;
center_RD=center_RD_new;
[inter_center_RT,Cor_RT] = intermatching (hotspot,LT,center_RT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,LT,center_LD_new,scale,subpixel);
[inter_center_RD,Cor_RD] = intermatching (hotspot,LT,center_RD_new,scale,subpixel);
center_LD=inter_center_LD;
center_RT=inter_center_RT;
center_RD=inter_center_RD;
Cor=[1 Cor_RT;Cor_LD Cor_RD];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_RT(1,1); H_rt=center_RT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_rt,YI_rt]=meshgrid(H_rt-hscale:H_rt+hscale,V_rt-hscale:V_rt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld); % update images
RT=interp2(hotspot,XI_rt,YI_rt);
RD=interp2(hotspot,XI_rd,YI_rd);
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LT);
for i=1:m
for j=1:n
X=[1/lamda_LT 1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
% X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
Y=[Wien_LT(i,j) Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
% Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg); %% bint is 95% confidence level of T
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1); %% T_inv(1,1) is for T
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb); %% T_inv(2,1) is for emissivity
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2; %% difference between upper limit of T – lower limit of T
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_LT,Indexing] = max(LT(:))
max_RD = max(max(RD));max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [LT(Indexing) RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (LT(countm,countn)-max_LT).^2 + (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [LT(m4,n4) RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [LT(m4,:); RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [LT(:,n4)’; RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
%%
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,1)
imagesc(LT);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
Image result:
2nd code:
clear; close all
[filename, pathname, filterindex]=uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname=fullfile(pathname, filename);
mydata=importdata(fullname);
hotspot_ob=double(mydata);
scale=120;
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
%V_lt=98; H_lt=150;
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [ hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%V_lt=126; H_lt=176;
%V_rt=125; H_rt=565;
%V_ld=398; H_ld=179;
%V_rd=388; H_rd=580;
center_LT=[V_lt,H_lt];
center_LD=[V_ld, H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
LT=hotspot(V_lt-hscale:V_lt+hscale,H_lt-hscale:H_lt+hscale);
LD=hotspot(V_ld-hscale:V_ld+hscale,H_ld-hscale:H_ld+hscale);
RT=hotspot(V_rt-hscale:V_rt+hscale,H_rt-hscale:H_rt+hscale);
RD=hotspot(V_rd-hscale:V_rd+hscale,H_rd-hscale:H_rd+hscale);
% Find New centers and update them
[center_LT_new,Cor_LT] = imagematching (hotspot,RD,center_RT,scale); % use RT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,RD,center_LD,scale);
[center_RT_new,Cor_RT] = imagematching (hotspot,RD,center_RD,scale);
center_LD=center_LD_new;
center_LT=center_LT_new;
center_RT=center_RT_new;
[inter_center_LT,Cor_LT] = intermatching (hotspot,RD,center_LT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,RD,center_LD_new,scale,subpixel);
[inter_center_RT,Cor_RT] = intermatching (hotspot,RD,center_RT_new,scale,subpixel);
center_LD=inter_center_LD;
center_LT=inter_center_LT;
center_RT=inter_center_RT;
Cor=[1 Cor_LT;Cor_LD Cor_RT];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_LT(1,1); H_lt=center_LT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_lt,YI_lt]=meshgrid(H_lt-hscale:H_lt+hscale,V_lt-hscale:V_lt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld,’spline’); % update images
LT=interp2(hotspot,XI_lt,YI_lt,’spline’);
RD=interp2(hotspot,XI_rd,YI_rd,’spline’);
% Assuming you want to exclude 580 nm
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
%Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LD);
for i=1:m
for j=1:n
X=[1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
%X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
%Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
Y=[Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg);
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1);
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb);
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2;
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_RD,Indexing] = max(RD(:))
max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [ RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [ RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [ RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
image result: So, I do research of laser heating metals. We have this code (main code) that separates each hotspot into different qudrants to analyze. Occacsionally, one quadrant nees to be excluded from the calculations (2nd code). So the main code, uses the LT (left top) as the focus for analyzing. The 2nd code, needs to do the analysis with LD (Left down) as the focus instead adn exclude everything that has to do with LT.
So the issue is: the tempeartures calculated from the 2nd code are 300 to 400 K too low. (pics of ffure with each code.). If you have any isight I would greatly appreciate it!
Here is the normal code:
clear;close all;
[filename, pathname, filterindex] = uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname = fullfile(pathname, filename);
mydata = importdata(fullname);
hotspot_ob=double(mydata);
scale= 120; % size of the box 90*90
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
%V_lt=140;H_lt=166;
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
%%find max for hotspot for later T correction Jie add on Mar2216, two ways:
%%neigther seem to work properly
%1st find the strongest point and make it as threshold–find corresponding
%intensities in other quadrants
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [hotspot_lt(mm,nn) hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_lt(countm,countn)-hotspot_lt(m_lt,n_lt)).^2 + (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_lt(mmm,nnn) hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%%
center_LT=[V_lt,H_lt];
center_LD=[V_ld,H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
% Define the bounds of the matrix
k_max = size(hotspot, 1);
l_max = size(hotspot, 2);
% Ensure the indices are within valid bounds
V_lt_start = max(V_lt-hscale, 1);
V_lt_end = min(V_lt+hscale, k_max);
H_lt_start = max(H_lt-hscale, 1);
H_lt_end = min(H_lt+hscale, l_max);
V_ld_start = max(V_ld-hscale, 1);
V_ld_end = min(V_ld+hscale, k_max);
H_ld_start = max(H_ld-hscale, 1);
H_ld_end = min(H_ld+hscale, l_max);
V_rt_start = max(V_rt-hscale, 1);
V_rt_end = min(V_rt+hscale, k_max);
H_rt_start = max(H_rt-hscale, 1);
H_rt_end = min(H_rt+hscale, l_max);
V_rd_start = max(V_rd-hscale, 1);
V_rd_end = min(V_rd+hscale, k_max);
H_rd_start = max(H_rd-hscale, 1);
H_rd_end = min(H_rd+hscale, l_max);
% Now extract the subarrays with valid indices
LT = hotspot(V_lt_start:V_lt_end, H_lt_start:H_lt_end);
LD = hotspot(V_ld_start:V_ld_end, H_ld_start:H_ld_end);
RT = hotspot(V_rt_start:V_rt_end, H_rt_start:H_rt_end);
RD = hotspot(V_rd_start:V_rd_end, H_rd_start:H_rd_end);
% Find New centers and update them
[center_RT_new,Cor_RT] = imagematching (hotspot,LT,center_RT,scale); % use LT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,LT,center_LD,scale);
[center_RD_new,Cor_RD] = imagematching (hotspot,LT,center_RD,scale);
center_LD=center_LD_new;
center_RT=center_RT_new;
center_RD=center_RD_new;
[inter_center_RT,Cor_RT] = intermatching (hotspot,LT,center_RT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,LT,center_LD_new,scale,subpixel);
[inter_center_RD,Cor_RD] = intermatching (hotspot,LT,center_RD_new,scale,subpixel);
center_LD=inter_center_LD;
center_RT=inter_center_RT;
center_RD=inter_center_RD;
Cor=[1 Cor_RT;Cor_LD Cor_RD];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_RT(1,1); H_rt=center_RT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_rt,YI_rt]=meshgrid(H_rt-hscale:H_rt+hscale,V_rt-hscale:V_rt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld); % update images
RT=interp2(hotspot,XI_rt,YI_rt);
RD=interp2(hotspot,XI_rd,YI_rd);
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LT);
for i=1:m
for j=1:n
X=[1/lamda_LT 1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
% X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
Y=[Wien_LT(i,j) Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
% Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg); %% bint is 95% confidence level of T
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1); %% T_inv(1,1) is for T
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb); %% T_inv(2,1) is for emissivity
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2; %% difference between upper limit of T – lower limit of T
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_LT,Indexing] = max(LT(:))
max_RD = max(max(RD));max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [LT(Indexing) RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (LT(countm,countn)-max_LT).^2 + (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [LT(m4,n4) RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [LT(m4,:); RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [LT(:,n4)’; RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
%%
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,1)
imagesc(LT);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
Image result:
2nd code:
clear; close all
[filename, pathname, filterindex]=uigetfile(‘*.txt’, ‘Enter input data file..’);
fullname=fullfile(pathname, filename);
mydata=importdata(fullname);
hotspot_ob=double(mydata);
scale=120;
subpixel=4;
hscale=scale/2;
[k,l]=size(hotspot_ob);
SR=ones(size(hotspot_ob));
box_Num = 1; % box 1 or 2
ND_Num = 0; % 0, .5, 1, 2
switch ND_Num
case 0
ND_col = 1;
case .5
ND_col = 2;
case 1
ND_col = 3;
case 2
ND_col = 4;
end
%LATEST from 08/09/2023
box(1).rs = [ 1.0 1.0 1.0 1.0
1.05 1.101 1.14 1.14
0.803 1.12 1.54 4.17
0.645 0.788 0.929 2.82];
box(2).rs = [1.0 1.0 1.0 1
0.296 0.312 0.325 0.424
0.331 0.457 0.632 1.735
0.245 0.294 0.348 1.077];
SR(1:fix(k/2),1:fix(l/2)) = box(box_Num).rs(1,ND_col);
SR(1:fix(k/2),fix(l/2)+1:l) = box(box_Num).rs(2,ND_col);
SR(fix(k/2)+1:k,1:fix(l/2)) = box(box_Num).rs(3,ND_col);
SR(fix(k/2)+1:k,fix(l/2)+1:l) = box(box_Num).rs(4,ND_col);
hotspot=hotspot_ob./SR;
[V_lt,H_lt]=find_max(hotspot_ob,1,fix(k/2),1,fix(l/2));
[V_rt,H_rt]=find_max(hotspot_ob,1,fix(k/2),fix(l/2)+1,l);
[V_ld,H_ld]=find_max(hotspot_ob,fix(k/2)+1,k,1,fix(l/2));
[V_rd,H_rd]=find_max(hotspot_ob,fix(k/2)+1,k,fix(l/2)+1,l);
hotspot_lt = hotspot(1:fix(k/2),1:fix(l/2)); [k_lt, l_lt] = size(hotspot_lt);
hotspot_rt = hotspot(1:fix(k/2),(fix(l/2)+1):l); [k_rt, l_rt] = size(hotspot_rt);
hotspot_ld = hotspot((fix(k/2)+1):k,1:fix(l/2)); [k_ld, l_ld] = size(hotspot_ld);
hotspot_rd = hotspot((fix(k/2)+1):k,(fix(l/2)+1):l); [k_rd, l_rd] = size(hotspot_rd);
%V_lt=98; H_lt=150;
[m_lt,n_lt]=find_max(hotspot_lt,1,k_lt,1,l_lt);
[m_rt,n_rt]=find_max(hotspot_rt,1,k_rt,1,l_rt);
[m_ld,n_ld]=find_max(hotspot_ld,1,k_ld,1,l_ld);
[m_rd,n_rd]=find_max(hotspot_rd,1,k_rd,1,l_rd);
misfit = zeros(4,1);
misfit(1,1) = (hotspot_rt(m_rt,n_rt)-hotspot_rt(m_lt,n_lt)).^2+(hotspot_ld(m_ld,n_ld)-hotspot_ld(m_lt,n_lt)).^2 …
+(hotspot_rd(m_rd,n_rd)-hotspot_rd(m_lt,n_lt)).^2;
misfit(2,1) = (hotspot_lt(m_rt,n_rt)-hotspot_lt(m_rt,n_rt)).^2+(hotspot_ld(m_rt,n_rt)-hotspot_ld(m_rt,n_rt)).^2 …
+(hotspot_rd(m_rt,n_rt)-hotspot_rd(m_rt,n_rt)).^2;
misfit(3,1) = (hotspot_lt(m_ld,n_ld)-hotspot_lt(m_ld,n_ld)).^2+(hotspot_rt(m_ld,n_ld)-hotspot_rt(m_ld,n_ld)).^2 …
+(hotspot_rd(m_ld,n_ld)-hotspot_rd(m_ld,n_ld)).^2;
misfit(4,1) = (hotspot_lt(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2+(hotspot_rt(m_rd,n_rd)-hotspot_rt(m_rd,n_rd)).^2 …
+(hotspot_ld(m_rd,n_rd)-hotspot_ld(m_rd,n_rd)).^2;
switch min(misfit)
case misfit(1,1)
mm = m_lt; nn = n_lt;
case misfit(2,1)
mm = m_rt; nn = n_rt;
case misfit(3,1)
mm = m_ld; nn = n_ld;
case misfit(4,1)
mm = m_rd; nn = n_rd;
end
Max_color = [ hotspot_rt(mm,nn) hotspot_ld(mm,nn) hotspot_rd(mm,nn)]
m = min([k_lt;k_rt;k_ld;k_rd]); n = min([l_lt;l_rt;l_ld;l_rd]);
misfit2 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit2(countm,countn) = (hotspot_rt(countm,countn)-hotspot_rt(m_rt,n_rt)).^2 …
+(hotspot_ld(countm,countn)-hotspot_ld(m_ld,n_ld)).^2+(hotspot_rd(countm,countn)-hotspot_rd(m_rd,n_rd)).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit2(countm,countn) == min(min(misfit2))
mmm = countm; nnn = countn;
end
end
end
Max_color2 = [hotspot_rt(mmm,nnn) hotspot_ld(mmm,nnn) hotspot_rd(mmm,nnn)]
%V_lt=126; H_lt=176;
%V_rt=125; H_rt=565;
%V_ld=398; H_ld=179;
%V_rd=388; H_rd=580;
center_LT=[V_lt,H_lt];
center_LD=[V_ld, H_ld];
center_RT=[V_rt,H_rt];
center_RD=[V_rd,H_rd];
LT=hotspot(V_lt-hscale:V_lt+hscale,H_lt-hscale:H_lt+hscale);
LD=hotspot(V_ld-hscale:V_ld+hscale,H_ld-hscale:H_ld+hscale);
RT=hotspot(V_rt-hscale:V_rt+hscale,H_rt-hscale:H_rt+hscale);
RD=hotspot(V_rd-hscale:V_rd+hscale,H_rd-hscale:H_rd+hscale);
% Find New centers and update them
[center_LT_new,Cor_LT] = imagematching (hotspot,RD,center_RT,scale); % use RT as target image
[center_LD_new,Cor_LD] = imagematching (hotspot,RD,center_LD,scale);
[center_RT_new,Cor_RT] = imagematching (hotspot,RD,center_RD,scale);
center_LD=center_LD_new;
center_LT=center_LT_new;
center_RT=center_RT_new;
[inter_center_LT,Cor_LT] = intermatching (hotspot,RD,center_LT_new,scale,subpixel);
[inter_center_LD,Cor_LD] = intermatching (hotspot,RD,center_LD_new,scale,subpixel);
[inter_center_RT,Cor_RT] = intermatching (hotspot,RD,center_RT_new,scale,subpixel);
center_LD=inter_center_LD;
center_LT=inter_center_LT;
center_RT=inter_center_RT;
Cor=[1 Cor_LT;Cor_LD Cor_RT];
V_ld=center_LD(1,1); H_ld=center_LD(1,2);
V_rt=center_LT(1,1); H_lt=center_LT(1,2);
V_rd=center_RD(1,1); H_rd=center_RD(1,2);
[XI_ld,YI_ld]=meshgrid(H_ld-hscale:H_ld+hscale,V_ld-hscale:V_ld+hscale);
[XI_lt,YI_lt]=meshgrid(H_lt-hscale:H_lt+hscale,V_lt-hscale:V_lt+hscale);
[XI_rd,YI_rd]=meshgrid(H_rd-hscale:H_rd+hscale,V_rd-hscale:V_rd+hscale);
LD=interp2(hotspot,XI_ld,YI_ld,’spline’); % update images
LT=interp2(hotspot,XI_lt,YI_lt,’spline’);
RD=interp2(hotspot,XI_rd,YI_rd,’spline’);
% Assuming you want to exclude 580 nm
lamda_LT=580*10^(-9);
lamda_RT=640*10^(-9);
lamda_LD=766*10^(-9);
lamda_RD=905*10^(-9);
planck=6.6*10^(-34);
Kb=1.38*10^(-23);
c=3*10^8;
%Wien_LT=Kb/planck/c*log(2*pi*planck*c*c./LT/lamda_LT^5);
Wien_RT=Kb/planck/c*log(2*pi*planck*c*c./RT/lamda_RT^5);
Wien_LD=Kb/planck/c*log(2*pi*planck*c*c./LD/lamda_LD^5);
Wien_RD=Kb/planck/c*log(2*pi*planck*c*c./RD/lamda_RD^5);
[m,n]=size(LD);
for i=1:m
for j=1:n
X=[1/lamda_RT 1/lamda_LD 1/lamda_RD]’;
%X=[1/lamda_650 1/lamda_800 1/lamda_900]’;
X_reg=[X ones(size(X))];
%Y=[Wien_LT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
Y=[Wien_RT(i,j) Wien_LD(i,j) Wien_RD(i,j)]’;
%R(i,j)=corrcoef(X,Y);
[T_inv,bint]=regress(Y,X_reg);
R(i,j)=corr(X,Y);
T(i,j)=1/T_inv(1,1);
Em(i,j)=exp(-T_inv(2,1)*planck*c/Kb);
T_err(i,j)=(1/bint(1,1)-1/bint(1,2))/2;
T_low(i,j)=1/bint(1,2);
T_high(i,j)=1/bint(1,1);
end
end
%% max in four regimes Jie add on Dec 5th 2015
[max_RD,Indexing] = max(RD(:))
max_LD = max(max(LD));max_RT = max(max(RT));
Max_color4 = [RT(Indexing) LD(Indexing) RD(Indexing)]
%% max grid search Jie add on April 1st
[m,n]=size(RD);
misfit3 = zeros(m,n);
for countm = 1:m
for countn = 1:n
misfit3(countm,countn) = (RT(countm,countn)-max_RT).^2 …
+(LD(countm,countn)-max_LD).^2+(RD(countm,countn)-max_RD).^2;
end
end
for countm = 1:m
for countn = 1:n
if misfit3(countm,countn) == min(min(misfit3))
m4 = countm; n4 = countn;
end
end
end
Max_color3 = [ RT(m4,n4) LD(m4,n4) RD(m4,n4)];
Max_Ih = [ RT(m4,:); LD(m4,:); RD(m4,:)];
Max_Iv = [ RT(:,n4)’; LD(:,n4)’; RD(:,n4)’];
figure(‘Name’,’hotspot’);
imagesc(hotspot_ob);
figure(‘Name’,’hot spot in 4 regions’);
subplot(2,2,2)
imagesc(RT);
subplot(2,2,3)
imagesc(LD);
subplot(2,2,4)
imagesc(RD);
figure(‘Name’,’T profile (pixel)’);
imagesc(T);
[Max_T, H]=max(max(T)); % maximum Temperature, horizontal position
[Max_T, V]=max(max(T’)); % maximum Temperature, vertical position
grid=0.48; % each pixel is 0.5um
X_position=(-H+1)*grid: grid: (scale-H+1)*grid;
figure(‘Name’,’Hirizontal T profile throughh highest T point’)
plot (X_position, T(V, :));
title(‘horizotal plot’)
xlabel(‘horizontal positon/um’)
ylabel (‘temperature/K’);
figure(‘Name’,’Vertical T profile throughh highest T point’)
Y_position=(-V+1)*grid: grid: (scale-V+1)*grid;
plot(Y_position,T(:,H));
title(‘Vertical plot’)
xlabel(‘Vertical positon/um’)
ylabel (‘temperature/K’);
[Y_p,X_p]=meshgrid(X_position, Y_position);
figure(‘Name’,’3D T profile’)
surf(X_p,Y_p,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
zlabel(‘Temperature(K)’)
shading interp;
figure(‘Name’,’T profile (pixel)’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
figure(‘Name’,’T profile (pixel) contour’);
imagesc(X_position,Y_position,T);
xlabel(‘Horizontal distance(um)’)
ylabel (‘Vetical distance(um)’);
colormap(‘turbo’)
colorbar;
hold on; % Keep the image displayed while adding contour
contour(X_position, Y_position, T, 10, ‘LineWidth’, 1, ‘LineColor’, ‘w’); % 40 contours, white lines
hold off; % Release the hold on the current figure
figure(‘Name’,’T error’);
imagesc(X_position,Y_position,T_err);
figure(‘Name’,’Emissivity Profile’)
imagesc(X_position,Y_position,log10(Em));
figure(‘Name’,’3D Emissivity profile’)
surf(X_p,Y_p,log10(Em));
H=scale/2; V=scale/2;% give the point needed to plot T cross section
figure(‘Name’,’Vertical Em/Emax vs T trough highest T point’)
plot(T(:,H),Em(:,H)/max(Em(:,H)),’–rs’);
title(‘Vertical plot’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
figure(‘Name’,’horizontal Em/Emax vs T trough highest T point’)
plot(T(V,:),Em(V,:)/max(Em(V,:)),’–rs’);
title(‘horizontal Em/Emax vs T’)
xlabel(‘Temperature’)
ylabel (‘Em/Em_max’);
% figure(12); % 3D image for intensity in 4 regions
% subplot(2,2,1)
% surf(X_p,Y_p,LT);
% subplot(2,2,2)
% surf(X_p,Y_p,RT);
% subplot(2,2,3)
% surf(X_p,Y_p,LD);
% subplot(2,2,4)
% surf(X_p,Y_p,RD)
figure (‘Name’,’Emissivity vs T over whole space’); plot(T,Em);
image result: colormap, contour, image analysis MATLAB Answers — New Questions
Find limits satisfying a condition on an integral
I have some data that I have interpolated with even spacing from measured data. I can integrate this between defined limits etc using trapz. However, I want to turn the problem on its head and find for what limit does the result of definite integral satisfy a condition. As an example:
x = linspace(0, 2*pi, 20);
y = sin(x);
lowLimIndex = 1;
upLimIndex = find(x>pi,1);
halfInt = trapz(x(lowLimIndex:upLimIndex),y(lowLimIndex:upLimIndex))
Or close enough to the known result of 2… But in my case, I effectively want to find the value of x that results in the integral = 2.
I could fit an equation to my data and use solve to solve it in symbolic mode I suppose…. Seems there ought to be a way to do this using the optimization tools though?
Any help appreciated!I have some data that I have interpolated with even spacing from measured data. I can integrate this between defined limits etc using trapz. However, I want to turn the problem on its head and find for what limit does the result of definite integral satisfy a condition. As an example:
x = linspace(0, 2*pi, 20);
y = sin(x);
lowLimIndex = 1;
upLimIndex = find(x>pi,1);
halfInt = trapz(x(lowLimIndex:upLimIndex),y(lowLimIndex:upLimIndex))
Or close enough to the known result of 2… But in my case, I effectively want to find the value of x that results in the integral = 2.
I could fit an equation to my data and use solve to solve it in symbolic mode I suppose…. Seems there ought to be a way to do this using the optimization tools though?
Any help appreciated! I have some data that I have interpolated with even spacing from measured data. I can integrate this between defined limits etc using trapz. However, I want to turn the problem on its head and find for what limit does the result of definite integral satisfy a condition. As an example:
x = linspace(0, 2*pi, 20);
y = sin(x);
lowLimIndex = 1;
upLimIndex = find(x>pi,1);
halfInt = trapz(x(lowLimIndex:upLimIndex),y(lowLimIndex:upLimIndex))
Or close enough to the known result of 2… But in my case, I effectively want to find the value of x that results in the integral = 2.
I could fit an equation to my data and use solve to solve it in symbolic mode I suppose…. Seems there ought to be a way to do this using the optimization tools though?
Any help appreciated! definite integral, optimization MATLAB Answers — New Questions
How to use nohup feature in MATLAB with Linux-based OS
I have been curious to understand the usage of the nohup feature in MATLAB with a Linux-based OS. While I have attempted to find answers to my questions on the internet, the instructions provided by users can be quite confusing to follow. It would be greatly appreciated if someone could assist me in resolving the following queries.
How to execute a MATLAB script file with nohup feature?
How to know if the MATLAB script is being executed on nohup command?
How to stop executing the MATLAB script midway, in case you start it by mistake?
Indeed, the queries and answers provided in this thread form a comprehensive guide for MATLAB users.I have been curious to understand the usage of the nohup feature in MATLAB with a Linux-based OS. While I have attempted to find answers to my questions on the internet, the instructions provided by users can be quite confusing to follow. It would be greatly appreciated if someone could assist me in resolving the following queries.
How to execute a MATLAB script file with nohup feature?
How to know if the MATLAB script is being executed on nohup command?
How to stop executing the MATLAB script midway, in case you start it by mistake?
Indeed, the queries and answers provided in this thread form a comprehensive guide for MATLAB users. I have been curious to understand the usage of the nohup feature in MATLAB with a Linux-based OS. While I have attempted to find answers to my questions on the internet, the instructions provided by users can be quite confusing to follow. It would be greatly appreciated if someone could assist me in resolving the following queries.
How to execute a MATLAB script file with nohup feature?
How to know if the MATLAB script is being executed on nohup command?
How to stop executing the MATLAB script midway, in case you start it by mistake?
Indeed, the queries and answers provided in this thread form a comprehensive guide for MATLAB users. matlab, linux, nohup, gui MATLAB Answers — New Questions