Tag Archives: matlab
How plot a grid of rectangles on an overlaid circle?
How to plot a circle of radius R and an overlaid grid of rectangles (with each rectangle of dimensions LxW)?
Choice of dimensions are so that the rectangular grid is larger than the dimeter of the circle and the centre of the circle is on one of the rectangle corners within the grid. The circle fully sits within the rectangular grid.
Secondly, from the plot or otherwise can Matlab help count the full rectangles within the circle?How to plot a circle of radius R and an overlaid grid of rectangles (with each rectangle of dimensions LxW)?
Choice of dimensions are so that the rectangular grid is larger than the dimeter of the circle and the centre of the circle is on one of the rectangle corners within the grid. The circle fully sits within the rectangular grid.
Secondly, from the plot or otherwise can Matlab help count the full rectangles within the circle? How to plot a circle of radius R and an overlaid grid of rectangles (with each rectangle of dimensions LxW)?
Choice of dimensions are so that the rectangular grid is larger than the dimeter of the circle and the centre of the circle is on one of the rectangle corners within the grid. The circle fully sits within the rectangular grid.
Secondly, from the plot or otherwise can Matlab help count the full rectangles within the circle? geometry, plotting, mesh MATLAB Answers — New Questions
How do you run the Activation Client?
MATLAB R2015b won’t open on my computer. Pop up says my license checkout has failed (License Manager error-9). Where can I find the Activation client to reactivate my license?MATLAB R2015b won’t open on my computer. Pop up says my license checkout has failed (License Manager error-9). Where can I find the Activation client to reactivate my license? MATLAB R2015b won’t open on my computer. Pop up says my license checkout has failed (License Manager error-9). Where can I find the Activation client to reactivate my license? activation client MATLAB Answers — New Questions
How do I close an open instrument handle following an error?
I’m using MATLAB 2018a on Windows 10 Enterprise.
I’m writing code to talk to and read from instruments that are on a LAN interface.
I use commands similar to:
instrOfInterest_handle = visa(‘agilent’, sprintf(‘TCIP0::%s::instr0::INSTR, IpAddressStruct.instrOfInterest)
to find the instrument handle, and then commands similar to:
fopen(instrOfInterest_handle);
to open communication with the instrument.
I normally close the communication with a command similar to
fclose(instrOfInterest_handle);
However, since I’m writing / developing the code, sometimes I make mistakes and the program I’m developing halts in an error state, before running the command to close the communcations.
When that happens, I’m unable to re-open the communication channel to the instrument. Instead, I get an error similar to:
Warning: : Unsuccessful open: The specified configuration:
TCPIP0::IpAddressOfInterest::inst0::INSTR is not available
Use INSTRHWINFO for a list of available configurations. Use INSTRFIND to determine if other instrument objects are connected to the requested instrument.
If I was getting an error similar to this when trying to write to a file, I’d run the
fclose(‘all’);
command. However, there doesn’t appear to be anything similar when writing to instruments.
The only way I’ve figured out to be able to re-open the communications channel to the instrument is to kill off MATLAB and then restart it.
I figure there has to be a better way; I just don’t know what that better way is.I’m using MATLAB 2018a on Windows 10 Enterprise.
I’m writing code to talk to and read from instruments that are on a LAN interface.
I use commands similar to:
instrOfInterest_handle = visa(‘agilent’, sprintf(‘TCIP0::%s::instr0::INSTR, IpAddressStruct.instrOfInterest)
to find the instrument handle, and then commands similar to:
fopen(instrOfInterest_handle);
to open communication with the instrument.
I normally close the communication with a command similar to
fclose(instrOfInterest_handle);
However, since I’m writing / developing the code, sometimes I make mistakes and the program I’m developing halts in an error state, before running the command to close the communcations.
When that happens, I’m unable to re-open the communication channel to the instrument. Instead, I get an error similar to:
Warning: : Unsuccessful open: The specified configuration:
TCPIP0::IpAddressOfInterest::inst0::INSTR is not available
Use INSTRHWINFO for a list of available configurations. Use INSTRFIND to determine if other instrument objects are connected to the requested instrument.
If I was getting an error similar to this when trying to write to a file, I’d run the
fclose(‘all’);
command. However, there doesn’t appear to be anything similar when writing to instruments.
The only way I’ve figured out to be able to re-open the communications channel to the instrument is to kill off MATLAB and then restart it.
I figure there has to be a better way; I just don’t know what that better way is. I’m using MATLAB 2018a on Windows 10 Enterprise.
I’m writing code to talk to and read from instruments that are on a LAN interface.
I use commands similar to:
instrOfInterest_handle = visa(‘agilent’, sprintf(‘TCIP0::%s::instr0::INSTR, IpAddressStruct.instrOfInterest)
to find the instrument handle, and then commands similar to:
fopen(instrOfInterest_handle);
to open communication with the instrument.
I normally close the communication with a command similar to
fclose(instrOfInterest_handle);
However, since I’m writing / developing the code, sometimes I make mistakes and the program I’m developing halts in an error state, before running the command to close the communcations.
When that happens, I’m unable to re-open the communication channel to the instrument. Instead, I get an error similar to:
Warning: : Unsuccessful open: The specified configuration:
TCPIP0::IpAddressOfInterest::inst0::INSTR is not available
Use INSTRHWINFO for a list of available configurations. Use INSTRFIND to determine if other instrument objects are connected to the requested instrument.
If I was getting an error similar to this when trying to write to a file, I’d run the
fclose(‘all’);
command. However, there doesn’t appear to be anything similar when writing to instruments.
The only way I’ve figured out to be able to re-open the communications channel to the instrument is to kill off MATLAB and then restart it.
I figure there has to be a better way; I just don’t know what that better way is. fclose, instruments MATLAB Answers — New Questions
extracting values from an image with color legend
howdy folks,
I want to extract numerical values from this figure. each circle is a fuel rod, that has a "power peaking factor" I would like to obtain a numerical value for that.howdy folks,
I want to extract numerical values from this figure. each circle is a fuel rod, that has a "power peaking factor" I would like to obtain a numerical value for that. howdy folks,
I want to extract numerical values from this figure. each circle is a fuel rod, that has a "power peaking factor" I would like to obtain a numerical value for that. extracting numerical values from figures, image-processing, colors to numbers MATLAB Answers — New Questions
Numerical Simulation of a Damped, Driven Nonlinear Wave System with Spatially Extended Initial Conditions
The equation is:
We consider spatially extended initial conditions of the form:
where is the distance of the grid and is the amplitude of the initial condition
We also assume zero initial velocity:
I am trying to create the following plots but as you can see my code doesn;t give these results. Any sugestions?
% Parameters
K = 99;
L = 200;
beta = 1;
delta = 0.05;
omega_d = 1;
h = L / (K + 1);
Omega_d_squared = h^2 * omega_d^2;
hat_delta = h * delta;
% Discrete Laplacian
laplacian = @(U) [U(2) – 2*U(1) + U(1); U(3:end) – 2*U(2:end-1) + U(1:end-2); U(end) – 2*U(end) + U(end-1)];
% Differential Equation
equation = @(t, U_flat) [U_flat(K+1:end); laplacian(U_flat(1:K)) – hat_delta * U_flat(K+1:end) + Omega_d_squared * (U_flat(1:K) – beta * U_flat(1:K).^2)];
% Initial Conditions Function
initial_conditions = @(a) [a * sin(pi * (1:K)’ * h / L); zeros(K, 1)];
% Time Span
t_span = [0 3000];
t_eval = linspace(0, 3000, 600);
% Solver options
options = odeset(‘RelTol’,1e-4, ‘AbsTol’,1e-6);
% Amplitudes to test
amplitudes = [2, 1.95, 1.9, 1.85, 1.82];
% Create Subplots
figure;
for i = 1:length(amplitudes)
a = amplitudes(i);
U0 = initial_conditions(a);
[t, U_flat] = ode15s(@(t, U_flat) equation(t, U_flat), t_eval, U0, options);
U = U_flat(:, 1:K);
subplot(3, 2, i);
plot(t, U(:, round(K/2)), ‘DisplayName’, [‘a=’ num2str(a)]);
title([‘a=’ num2str(a)]);
xlabel(‘t’);
ylabel(‘U_n’);
legend;
% Zoom-in subplot
ax = axes(‘Position’, [.15 + mod(i-1,2)*.45 .65 – floor((i-1)/2)*.35 .2 .2]);
plot(ax, 1:K, U(end, :), ‘bo-‘);
title(ax, [‘t=’ num2str(t_span(end))]);
xlabel(ax, ‘x_n’);
ylabel(ax, ‘U_n’);
end
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’);
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’);The equation is:
We consider spatially extended initial conditions of the form:
where is the distance of the grid and is the amplitude of the initial condition
We also assume zero initial velocity:
I am trying to create the following plots but as you can see my code doesn;t give these results. Any sugestions?
% Parameters
K = 99;
L = 200;
beta = 1;
delta = 0.05;
omega_d = 1;
h = L / (K + 1);
Omega_d_squared = h^2 * omega_d^2;
hat_delta = h * delta;
% Discrete Laplacian
laplacian = @(U) [U(2) – 2*U(1) + U(1); U(3:end) – 2*U(2:end-1) + U(1:end-2); U(end) – 2*U(end) + U(end-1)];
% Differential Equation
equation = @(t, U_flat) [U_flat(K+1:end); laplacian(U_flat(1:K)) – hat_delta * U_flat(K+1:end) + Omega_d_squared * (U_flat(1:K) – beta * U_flat(1:K).^2)];
% Initial Conditions Function
initial_conditions = @(a) [a * sin(pi * (1:K)’ * h / L); zeros(K, 1)];
% Time Span
t_span = [0 3000];
t_eval = linspace(0, 3000, 600);
% Solver options
options = odeset(‘RelTol’,1e-4, ‘AbsTol’,1e-6);
% Amplitudes to test
amplitudes = [2, 1.95, 1.9, 1.85, 1.82];
% Create Subplots
figure;
for i = 1:length(amplitudes)
a = amplitudes(i);
U0 = initial_conditions(a);
[t, U_flat] = ode15s(@(t, U_flat) equation(t, U_flat), t_eval, U0, options);
U = U_flat(:, 1:K);
subplot(3, 2, i);
plot(t, U(:, round(K/2)), ‘DisplayName’, [‘a=’ num2str(a)]);
title([‘a=’ num2str(a)]);
xlabel(‘t’);
ylabel(‘U_n’);
legend;
% Zoom-in subplot
ax = axes(‘Position’, [.15 + mod(i-1,2)*.45 .65 – floor((i-1)/2)*.35 .2 .2]);
plot(ax, 1:K, U(end, :), ‘bo-‘);
title(ax, [‘t=’ num2str(t_span(end))]);
xlabel(ax, ‘x_n’);
ylabel(ax, ‘U_n’);
end
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’);
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’); The equation is:
We consider spatially extended initial conditions of the form:
where is the distance of the grid and is the amplitude of the initial condition
We also assume zero initial velocity:
I am trying to create the following plots but as you can see my code doesn;t give these results. Any sugestions?
% Parameters
K = 99;
L = 200;
beta = 1;
delta = 0.05;
omega_d = 1;
h = L / (K + 1);
Omega_d_squared = h^2 * omega_d^2;
hat_delta = h * delta;
% Discrete Laplacian
laplacian = @(U) [U(2) – 2*U(1) + U(1); U(3:end) – 2*U(2:end-1) + U(1:end-2); U(end) – 2*U(end) + U(end-1)];
% Differential Equation
equation = @(t, U_flat) [U_flat(K+1:end); laplacian(U_flat(1:K)) – hat_delta * U_flat(K+1:end) + Omega_d_squared * (U_flat(1:K) – beta * U_flat(1:K).^2)];
% Initial Conditions Function
initial_conditions = @(a) [a * sin(pi * (1:K)’ * h / L); zeros(K, 1)];
% Time Span
t_span = [0 3000];
t_eval = linspace(0, 3000, 600);
% Solver options
options = odeset(‘RelTol’,1e-4, ‘AbsTol’,1e-6);
% Amplitudes to test
amplitudes = [2, 1.95, 1.9, 1.85, 1.82];
% Create Subplots
figure;
for i = 1:length(amplitudes)
a = amplitudes(i);
U0 = initial_conditions(a);
[t, U_flat] = ode15s(@(t, U_flat) equation(t, U_flat), t_eval, U0, options);
U = U_flat(:, 1:K);
subplot(3, 2, i);
plot(t, U(:, round(K/2)), ‘DisplayName’, [‘a=’ num2str(a)]);
title([‘a=’ num2str(a)]);
xlabel(‘t’);
ylabel(‘U_n’);
legend;
% Zoom-in subplot
ax = axes(‘Position’, [.15 + mod(i-1,2)*.45 .65 – floor((i-1)/2)*.35 .2 .2]);
plot(ax, 1:K, U(end, :), ‘bo-‘);
title(ax, [‘t=’ num2str(t_span(end))]);
xlabel(ax, ‘x_n’);
ylabel(ax, ‘U_n’);
end
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’);
% Hide unused subplot
subplot(3, 2, 6); % Placeholder for unused subplot
axis off; % Turn off the axis for the unused subplot
% Adjust layout
sgtitle(‘Dynamics for initial condition and various amplitude values’); plot, plotting, differential equations, subplot, equation MATLAB Answers — New Questions
How do you apply a rotating (in time) 2d gaussian function to a round plate with a center hole, my script does not seem to rotate the function?
clear all
close all
model=createpde(‘thermal’,’transient’)
geo=multicylinder([1/2,4/2],0.04,"Void",[1,0])
model.Geometry = geo;
pdegplot(model,’FaceLabels’,’on’,’CellLabels’,’on’);grid on
generateMesh(model,’Hmax’,0.1)
pdeplot3d(model)
thermalProperties(model,’ThermalConductivity’,2.1,…
‘MassDensity’,1050,…
‘SpecificHeat’,822)
a = linspace(-2,2,200);
b = linspace(-2,2,200);
time = linspace(0,100,1);
[x,y] = meshgrid(a,b)
state.time = meshgrid(time)
location.x = x;
location.y = y;
thermalIC(model,22)
thermalBC(model,’Face’,1,’Temperature’,22)
thermalBC(model,’Face’,2,’HeatFlux’,@externalHeatFlux)
pdeplot3d(model)
t=0:1:180
state.time = t;
modelresults = solve(model,t)
figure
for n=1:numel(modelresults.SolutionTimes)
pdeplot3d(model.mesh,"ColorMapData",modelresults.Temperature(:,n))
drawnow
pause(0.2)
end
function flux=externalHeatFlux(location,state)
t = state.time
A = 1;
x0 = 0;
y0 = 0;
sx = 0.5;
sy = 2;
for index=1:length(t)
ang = index-1;
flux(:,:,index) = imrotate(A*exp(-(((location.x-x0).^2/(2*sx^2)) +…
((location.y-y0).^2/(2*sy^2)))).*exp(-t(index)),ang,’crop’)
end
endclear all
close all
model=createpde(‘thermal’,’transient’)
geo=multicylinder([1/2,4/2],0.04,"Void",[1,0])
model.Geometry = geo;
pdegplot(model,’FaceLabels’,’on’,’CellLabels’,’on’);grid on
generateMesh(model,’Hmax’,0.1)
pdeplot3d(model)
thermalProperties(model,’ThermalConductivity’,2.1,…
‘MassDensity’,1050,…
‘SpecificHeat’,822)
a = linspace(-2,2,200);
b = linspace(-2,2,200);
time = linspace(0,100,1);
[x,y] = meshgrid(a,b)
state.time = meshgrid(time)
location.x = x;
location.y = y;
thermalIC(model,22)
thermalBC(model,’Face’,1,’Temperature’,22)
thermalBC(model,’Face’,2,’HeatFlux’,@externalHeatFlux)
pdeplot3d(model)
t=0:1:180
state.time = t;
modelresults = solve(model,t)
figure
for n=1:numel(modelresults.SolutionTimes)
pdeplot3d(model.mesh,"ColorMapData",modelresults.Temperature(:,n))
drawnow
pause(0.2)
end
function flux=externalHeatFlux(location,state)
t = state.time
A = 1;
x0 = 0;
y0 = 0;
sx = 0.5;
sy = 2;
for index=1:length(t)
ang = index-1;
flux(:,:,index) = imrotate(A*exp(-(((location.x-x0).^2/(2*sx^2)) +…
((location.y-y0).^2/(2*sy^2)))).*exp(-t(index)),ang,’crop’)
end
end clear all
close all
model=createpde(‘thermal’,’transient’)
geo=multicylinder([1/2,4/2],0.04,"Void",[1,0])
model.Geometry = geo;
pdegplot(model,’FaceLabels’,’on’,’CellLabels’,’on’);grid on
generateMesh(model,’Hmax’,0.1)
pdeplot3d(model)
thermalProperties(model,’ThermalConductivity’,2.1,…
‘MassDensity’,1050,…
‘SpecificHeat’,822)
a = linspace(-2,2,200);
b = linspace(-2,2,200);
time = linspace(0,100,1);
[x,y] = meshgrid(a,b)
state.time = meshgrid(time)
location.x = x;
location.y = y;
thermalIC(model,22)
thermalBC(model,’Face’,1,’Temperature’,22)
thermalBC(model,’Face’,2,’HeatFlux’,@externalHeatFlux)
pdeplot3d(model)
t=0:1:180
state.time = t;
modelresults = solve(model,t)
figure
for n=1:numel(modelresults.SolutionTimes)
pdeplot3d(model.mesh,"ColorMapData",modelresults.Temperature(:,n))
drawnow
pause(0.2)
end
function flux=externalHeatFlux(location,state)
t = state.time
A = 1;
x0 = 0;
y0 = 0;
sx = 0.5;
sy = 2;
for index=1:length(t)
ang = index-1;
flux(:,:,index) = imrotate(A*exp(-(((location.x-x0).^2/(2*sx^2)) +…
((location.y-y0).^2/(2*sy^2)))).*exp(-t(index)),ang,’crop’)
end
end time dependent heat flux, rotating heat flux MATLAB Answers — New Questions
How to read the .inp file generated in gmsh for extracting the Nodal coordinates and element connectivity of the mesh.
I have a 2D structured mesh of a 2D domain, as shown, generated by gmsh, an open source meshing software. After generating the mesh, I exported the file as .inp file, which I have attached.
From the line no. 373 to 596, are the element nodal connectivity. which I have to extract
From line no. 4 to 272, are the (x,y) coordinate of each node. which also have to be extracted.
kindly help me on extracting these info and placing them in an array variables.I have a 2D structured mesh of a 2D domain, as shown, generated by gmsh, an open source meshing software. After generating the mesh, I exported the file as .inp file, which I have attached.
From the line no. 373 to 596, are the element nodal connectivity. which I have to extract
From line no. 4 to 272, are the (x,y) coordinate of each node. which also have to be extracted.
kindly help me on extracting these info and placing them in an array variables. I have a 2D structured mesh of a 2D domain, as shown, generated by gmsh, an open source meshing software. After generating the mesh, I exported the file as .inp file, which I have attached.
From the line no. 373 to 596, are the element nodal connectivity. which I have to extract
From line no. 4 to 272, are the (x,y) coordinate of each node. which also have to be extracted.
kindly help me on extracting these info and placing them in an array variables. file handling, matrix, finite element method, mathematics, meshing, machine learning, arrays MATLAB Answers — New Questions
How can I convert base64 encoded data URL to a PNG image?
I have image data in the form of base64 encoded data URLs, like this:
‘data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAAK8CAYAAAD1…’
I need to convert these to either some common image format, such as PNG, or JPEG, or directly to a matrix describing the image.
Matlab provides "webread" to read data from web services, but this does not support the "data:" protocol.
Is there a way to use Matlab to read data URLs?I have image data in the form of base64 encoded data URLs, like this:
‘data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAAK8CAYAAAD1…’
I need to convert these to either some common image format, such as PNG, or JPEG, or directly to a matrix describing the image.
Matlab provides "webread" to read data from web services, but this does not support the "data:" protocol.
Is there a way to use Matlab to read data URLs? I have image data in the form of base64 encoded data URLs, like this:
‘data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAAK8CAYAAAD1…’
I need to convert these to either some common image format, such as PNG, or JPEG, or directly to a matrix describing the image.
Matlab provides "webread" to read data from web services, but this does not support the "data:" protocol.
Is there a way to use Matlab to read data URLs? data url, base64, image import MATLAB Answers — New Questions
How can I develop a matlab code which analyses and checks how thick the cracks of a wheel surface are?
Recently I have done a measurement for a wheel to find out how overused it is by using the confocal sensor and the data recorder to check how deep the cracks on the surface are by the light distance.
The measured data looks like this e. g.:
With the green diagram you can see how long the distance of the measured light = how deep the cracks on the surface are. The red and the yellow ones are the high and low voltage level.
Now the challenge is that I need to find out how thin/thick the cracks are using this data. Is there anyway I can use matlab to solve this problem?
I have already written a matlab code that checks how many cracks are there by adding a threshold or a mm light distance. But still have not found out a way yet how to find out how long/thick the cracks on the surface are…
Thanks a lot in advance for the help!
% Create PNRF reader OLE Automation server
FromDisk = actxserver(‘Perception.Loaders.pNRF’);
% Use the open file dialog to select a recording file
[FileName,PathName] = uigetfile(‘*.pNRF’,’U:SP90000_12_12_23′);
if isequal(FileName,0)
error(‘Benutzer hat die Auswahl abgebrochen.’);
end
MyRecordingName = fullfile(PathName, FileName);
% Laden der Aufzeichnung
MyData = FromDisk.LoadRecording(MyRecordingName); % Zugriff auf den ersten Recorder
% Initialize channel arrays
channelNames = {}; % Initialisiert als leere Zelle
channel = {}; % Initialisiert als leere Zelle
% Loop through all recorders and channels to get the names of all channels
indexer = 0;
for r = 1: MyData.Recorders.Count
% Get an interface to each recorder
MyRecorder = MyData.Recorders.Item(r);
% Get the channel collection from the recorder
myChannels = MyRecorder.Channels;
% Loop through each channel in the recorder
for i = 1:myChannels.Count
myChannel = myChannels.Item(i);
channelNames{end+1} = string(myChannel.Name);
channel{end+1} = myChannel;
end
end
% Show a modal selection list with all the channels so the operator can select a channel
[indx, tf] = listdlg(‘ListString’,channelNames);
if ~tf
error(‘Kein Kanal ausgewählt.’);
end
myChannel = channel{indx};
SelectedChannelName = myChannel.Name;
% Now we get the DataSrc (data source) interface from the selected channel
ItfData = myChannel.DataSource(3);
% Check if we have synchronous or asynchronous data by using the TimeInfo property
myTimeInfo = ItfData.TimeInfo;
isAsyncData = ~strcmp(myTimeInfo, ‘DataSourceTimeInfo_Implicit’);
% Get the sweeps collection from the datasource interface
MySweeps = ItfData.Sweeps;
% Get the start and end time of the recorded data of the first channel
dStartTime = MySweeps.StartTime;
dEndTime = MySweeps.EndTime;
% Get the data segments collection between the start and end time
SegmentsOfData = ItfData.Data(dStartTime, dEndTime); % Now the actual data is read.
% Take the first data segment
myFirstSegment = SegmentsOfData.Item(1);
% Check the number of samples
NumberOfSamples = myFirstSegment.NumberOfSamples;
if NumberOfSamples > 500000
NumberOfSamples = 500000;
end
% Show the data in a diagram
figure1 = figure(‘NumberTitle’,’off’,’Name’, SelectedChannelName);
% axes1 = axes(‘Parent’,figure1,’Position’,[0.2 0.05 0.6 0.9]);
%set(figure1, ‘Position’, [100 100 1200 800]);
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
title(‘Not-Equidistant data points’);
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
title(‘Equidistant data points’);
end
legend(SelectedChannelName);
xlabel([‘Time (‘,ItfData.XUnit ,’)’]);
ylabel([SelectedChannelName, ‘ (‘, ItfData.YUnit ,’)’]);
% Create a Textbox to display data values from the information sheet
% myDataValues = MyData.DataValues;
% cInfo = ”;
% for i = 1:myDataValues.Count
% myDataValue = myDataValues.Item(i);
% cInfo = sprintf(‘%s%s: %s %sn’, cInfo, myDataValue.Name, myDataValue.Value, myDataValue.Units);
% end
% annotation(figure1, ‘textbox’, [0.66 0.05 0.32 0.9], ‘String’, cInfo, ‘FitBoxToText’, ‘on’);
% Schätze die Bildschirmgröße ab und positioniere das Fenster
screenSize = get(0, ‘ScreenSize’); % Dies gibt [left bottom width height]
figureWidth = 1200;
figureHeight = 800;
figureLeft = (screenSize(3) – figureWidth) / 2; % Zentriert horizontal
figureBottom = (screenSize(4) – figureHeight) / 2; % Zentriert vertikal
set(figure1, ‘Position’, [figureLeft figureBottom figureWidth figureHeight]);
% Ersetzen oder fügen Sie nach der Plot-Erstellung hinzu
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
WaveformData = WaveformDateWithTimes; % Verwendung der asynchronen Daten für die Statistik
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
end
% Statistikberechnungen
averageValue = mean(WaveformData);
minValue = min(WaveformData);
maxValue = max(WaveformData);
numberOfPositiveValues = sum(WaveformData > 0);
% Anzahl der Werte größer als 0.25 mm
numberOfValuesAboveThreshold = sum(WaveformData > 0.25);
% Anzeige der berechneten Werte
disp([‘Durchschnittswert: ‘, num2str(averageValue)]);
disp([‘Minimaler Wert: ‘, num2str(minValue)]);
disp([‘Maximaler Wert: ‘, num2str(maxValue)]);
disp([‘Anzahl positiver Werte: ‘, num2str(numberOfPositiveValues)]);
disp([‘Anzahl der Werte über 0.1 mm: ‘, num2str(numberOfValuesAboveThreshold)]);Recently I have done a measurement for a wheel to find out how overused it is by using the confocal sensor and the data recorder to check how deep the cracks on the surface are by the light distance.
The measured data looks like this e. g.:
With the green diagram you can see how long the distance of the measured light = how deep the cracks on the surface are. The red and the yellow ones are the high and low voltage level.
Now the challenge is that I need to find out how thin/thick the cracks are using this data. Is there anyway I can use matlab to solve this problem?
I have already written a matlab code that checks how many cracks are there by adding a threshold or a mm light distance. But still have not found out a way yet how to find out how long/thick the cracks on the surface are…
Thanks a lot in advance for the help!
% Create PNRF reader OLE Automation server
FromDisk = actxserver(‘Perception.Loaders.pNRF’);
% Use the open file dialog to select a recording file
[FileName,PathName] = uigetfile(‘*.pNRF’,’U:SP90000_12_12_23′);
if isequal(FileName,0)
error(‘Benutzer hat die Auswahl abgebrochen.’);
end
MyRecordingName = fullfile(PathName, FileName);
% Laden der Aufzeichnung
MyData = FromDisk.LoadRecording(MyRecordingName); % Zugriff auf den ersten Recorder
% Initialize channel arrays
channelNames = {}; % Initialisiert als leere Zelle
channel = {}; % Initialisiert als leere Zelle
% Loop through all recorders and channels to get the names of all channels
indexer = 0;
for r = 1: MyData.Recorders.Count
% Get an interface to each recorder
MyRecorder = MyData.Recorders.Item(r);
% Get the channel collection from the recorder
myChannels = MyRecorder.Channels;
% Loop through each channel in the recorder
for i = 1:myChannels.Count
myChannel = myChannels.Item(i);
channelNames{end+1} = string(myChannel.Name);
channel{end+1} = myChannel;
end
end
% Show a modal selection list with all the channels so the operator can select a channel
[indx, tf] = listdlg(‘ListString’,channelNames);
if ~tf
error(‘Kein Kanal ausgewählt.’);
end
myChannel = channel{indx};
SelectedChannelName = myChannel.Name;
% Now we get the DataSrc (data source) interface from the selected channel
ItfData = myChannel.DataSource(3);
% Check if we have synchronous or asynchronous data by using the TimeInfo property
myTimeInfo = ItfData.TimeInfo;
isAsyncData = ~strcmp(myTimeInfo, ‘DataSourceTimeInfo_Implicit’);
% Get the sweeps collection from the datasource interface
MySweeps = ItfData.Sweeps;
% Get the start and end time of the recorded data of the first channel
dStartTime = MySweeps.StartTime;
dEndTime = MySweeps.EndTime;
% Get the data segments collection between the start and end time
SegmentsOfData = ItfData.Data(dStartTime, dEndTime); % Now the actual data is read.
% Take the first data segment
myFirstSegment = SegmentsOfData.Item(1);
% Check the number of samples
NumberOfSamples = myFirstSegment.NumberOfSamples;
if NumberOfSamples > 500000
NumberOfSamples = 500000;
end
% Show the data in a diagram
figure1 = figure(‘NumberTitle’,’off’,’Name’, SelectedChannelName);
% axes1 = axes(‘Parent’,figure1,’Position’,[0.2 0.05 0.6 0.9]);
%set(figure1, ‘Position’, [100 100 1200 800]);
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
title(‘Not-Equidistant data points’);
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
title(‘Equidistant data points’);
end
legend(SelectedChannelName);
xlabel([‘Time (‘,ItfData.XUnit ,’)’]);
ylabel([SelectedChannelName, ‘ (‘, ItfData.YUnit ,’)’]);
% Create a Textbox to display data values from the information sheet
% myDataValues = MyData.DataValues;
% cInfo = ”;
% for i = 1:myDataValues.Count
% myDataValue = myDataValues.Item(i);
% cInfo = sprintf(‘%s%s: %s %sn’, cInfo, myDataValue.Name, myDataValue.Value, myDataValue.Units);
% end
% annotation(figure1, ‘textbox’, [0.66 0.05 0.32 0.9], ‘String’, cInfo, ‘FitBoxToText’, ‘on’);
% Schätze die Bildschirmgröße ab und positioniere das Fenster
screenSize = get(0, ‘ScreenSize’); % Dies gibt [left bottom width height]
figureWidth = 1200;
figureHeight = 800;
figureLeft = (screenSize(3) – figureWidth) / 2; % Zentriert horizontal
figureBottom = (screenSize(4) – figureHeight) / 2; % Zentriert vertikal
set(figure1, ‘Position’, [figureLeft figureBottom figureWidth figureHeight]);
% Ersetzen oder fügen Sie nach der Plot-Erstellung hinzu
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
WaveformData = WaveformDateWithTimes; % Verwendung der asynchronen Daten für die Statistik
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
end
% Statistikberechnungen
averageValue = mean(WaveformData);
minValue = min(WaveformData);
maxValue = max(WaveformData);
numberOfPositiveValues = sum(WaveformData > 0);
% Anzahl der Werte größer als 0.25 mm
numberOfValuesAboveThreshold = sum(WaveformData > 0.25);
% Anzeige der berechneten Werte
disp([‘Durchschnittswert: ‘, num2str(averageValue)]);
disp([‘Minimaler Wert: ‘, num2str(minValue)]);
disp([‘Maximaler Wert: ‘, num2str(maxValue)]);
disp([‘Anzahl positiver Werte: ‘, num2str(numberOfPositiveValues)]);
disp([‘Anzahl der Werte über 0.1 mm: ‘, num2str(numberOfValuesAboveThreshold)]); Recently I have done a measurement for a wheel to find out how overused it is by using the confocal sensor and the data recorder to check how deep the cracks on the surface are by the light distance.
The measured data looks like this e. g.:
With the green diagram you can see how long the distance of the measured light = how deep the cracks on the surface are. The red and the yellow ones are the high and low voltage level.
Now the challenge is that I need to find out how thin/thick the cracks are using this data. Is there anyway I can use matlab to solve this problem?
I have already written a matlab code that checks how many cracks are there by adding a threshold or a mm light distance. But still have not found out a way yet how to find out how long/thick the cracks on the surface are…
Thanks a lot in advance for the help!
% Create PNRF reader OLE Automation server
FromDisk = actxserver(‘Perception.Loaders.pNRF’);
% Use the open file dialog to select a recording file
[FileName,PathName] = uigetfile(‘*.pNRF’,’U:SP90000_12_12_23′);
if isequal(FileName,0)
error(‘Benutzer hat die Auswahl abgebrochen.’);
end
MyRecordingName = fullfile(PathName, FileName);
% Laden der Aufzeichnung
MyData = FromDisk.LoadRecording(MyRecordingName); % Zugriff auf den ersten Recorder
% Initialize channel arrays
channelNames = {}; % Initialisiert als leere Zelle
channel = {}; % Initialisiert als leere Zelle
% Loop through all recorders and channels to get the names of all channels
indexer = 0;
for r = 1: MyData.Recorders.Count
% Get an interface to each recorder
MyRecorder = MyData.Recorders.Item(r);
% Get the channel collection from the recorder
myChannels = MyRecorder.Channels;
% Loop through each channel in the recorder
for i = 1:myChannels.Count
myChannel = myChannels.Item(i);
channelNames{end+1} = string(myChannel.Name);
channel{end+1} = myChannel;
end
end
% Show a modal selection list with all the channels so the operator can select a channel
[indx, tf] = listdlg(‘ListString’,channelNames);
if ~tf
error(‘Kein Kanal ausgewählt.’);
end
myChannel = channel{indx};
SelectedChannelName = myChannel.Name;
% Now we get the DataSrc (data source) interface from the selected channel
ItfData = myChannel.DataSource(3);
% Check if we have synchronous or asynchronous data by using the TimeInfo property
myTimeInfo = ItfData.TimeInfo;
isAsyncData = ~strcmp(myTimeInfo, ‘DataSourceTimeInfo_Implicit’);
% Get the sweeps collection from the datasource interface
MySweeps = ItfData.Sweeps;
% Get the start and end time of the recorded data of the first channel
dStartTime = MySweeps.StartTime;
dEndTime = MySweeps.EndTime;
% Get the data segments collection between the start and end time
SegmentsOfData = ItfData.Data(dStartTime, dEndTime); % Now the actual data is read.
% Take the first data segment
myFirstSegment = SegmentsOfData.Item(1);
% Check the number of samples
NumberOfSamples = myFirstSegment.NumberOfSamples;
if NumberOfSamples > 500000
NumberOfSamples = 500000;
end
% Show the data in a diagram
figure1 = figure(‘NumberTitle’,’off’,’Name’, SelectedChannelName);
% axes1 = axes(‘Parent’,figure1,’Position’,[0.2 0.05 0.6 0.9]);
%set(figure1, ‘Position’, [100 100 1200 800]);
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
title(‘Not-Equidistant data points’);
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
title(‘Equidistant data points’);
end
legend(SelectedChannelName);
xlabel([‘Time (‘,ItfData.XUnit ,’)’]);
ylabel([SelectedChannelName, ‘ (‘, ItfData.YUnit ,’)’]);
% Create a Textbox to display data values from the information sheet
% myDataValues = MyData.DataValues;
% cInfo = ”;
% for i = 1:myDataValues.Count
% myDataValue = myDataValues.Item(i);
% cInfo = sprintf(‘%s%s: %s %sn’, cInfo, myDataValue.Name, myDataValue.Value, myDataValue.Units);
% end
% annotation(figure1, ‘textbox’, [0.66 0.05 0.32 0.9], ‘String’, cInfo, ‘FitBoxToText’, ‘on’);
% Schätze die Bildschirmgröße ab und positioniere das Fenster
screenSize = get(0, ‘ScreenSize’); % Dies gibt [left bottom width height]
figureWidth = 1200;
figureHeight = 800;
figureLeft = (screenSize(3) – figureWidth) / 2; % Zentriert horizontal
figureBottom = (screenSize(4) – figureHeight) / 2; % Zentriert vertikal
set(figure1, ‘Position’, [figureLeft figureBottom figureWidth figureHeight]);
% Ersetzen oder fügen Sie nach der Plot-Erstellung hinzu
if isAsyncData
[WaveformDateWithTimes, Times] = myFirstSegment.WaveformWithTimes(5, 1, NumberOfSamples, 1);
plot(Times, WaveformDateWithTimes);
WaveformData = WaveformDateWithTimes; % Verwendung der asynchronen Daten für die Statistik
else
WaveformData = myFirstSegment.Waveform(5, 1, NumberOfSamples, 1);
tEnd = myFirstSegment.StartTime + (NumberOfSamples – 1) * myFirstSegment.SampleInterval;
t = myFirstSegment.StartTime: myFirstSegment.SampleInterval : tEnd;
plot(t, WaveformData);
end
% Statistikberechnungen
averageValue = mean(WaveformData);
minValue = min(WaveformData);
maxValue = max(WaveformData);
numberOfPositiveValues = sum(WaveformData > 0);
% Anzahl der Werte größer als 0.25 mm
numberOfValuesAboveThreshold = sum(WaveformData > 0.25);
% Anzeige der berechneten Werte
disp([‘Durchschnittswert: ‘, num2str(averageValue)]);
disp([‘Minimaler Wert: ‘, num2str(minValue)]);
disp([‘Maximaler Wert: ‘, num2str(maxValue)]);
disp([‘Anzahl positiver Werte: ‘, num2str(numberOfPositiveValues)]);
disp([‘Anzahl der Werte über 0.1 mm: ‘, num2str(numberOfValuesAboveThreshold)]); cracks, confocal, sensor, thickness, thick, thin, matlab, code MATLAB Answers — New Questions
Trigger event for graphic handle object?
The function notify seems to be designed for user-define class. Is it possible to make it works on MATLAB graphic handle objects such as uibutton. This code
fig = uifigure;
btn = uibutton(fig);
addlistener(btn, ‘PropertyAdded’, @(varargin) disp(‘trigger’));
notify(fig, ‘PropertyAdded’)
returns the following error:
Returns error
Error using matlab.ui.Figure/notify
Cannot notify listeners of event ‘PropertyAdded’ in class ‘dynamicprops’.The function notify seems to be designed for user-define class. Is it possible to make it works on MATLAB graphic handle objects such as uibutton. This code
fig = uifigure;
btn = uibutton(fig);
addlistener(btn, ‘PropertyAdded’, @(varargin) disp(‘trigger’));
notify(fig, ‘PropertyAdded’)
returns the following error:
Returns error
Error using matlab.ui.Figure/notify
Cannot notify listeners of event ‘PropertyAdded’ in class ‘dynamicprops’. The function notify seems to be designed for user-define class. Is it possible to make it works on MATLAB graphic handle objects such as uibutton. This code
fig = uifigure;
btn = uibutton(fig);
addlistener(btn, ‘PropertyAdded’, @(varargin) disp(‘trigger’));
notify(fig, ‘PropertyAdded’)
returns the following error:
Returns error
Error using matlab.ui.Figure/notify
Cannot notify listeners of event ‘PropertyAdded’ in class ‘dynamicprops’. events, addlistener, notify MATLAB Answers — New Questions
Averaging across labels in a time-series data
Hi, I have a time series data that loos like this:
time = repmat(5, 10, 1);
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data_1 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
If I have another time series data,
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data2 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
I wanted to know if there’s a simple way to get a final table (data) after taking an average of the stages at each duration timepoint. I thought of assigning the three stages A, B, and C integer values and then taking the average at each time point. The round off value that is the closest to the integer is assigned the same stage. For example, A = 0, B =1, C = 2. In the MWE above, at the first time point, we have the average = 0 so "data" will have A as the first stage.
I was wondering if there is a neater way to go about this. Or if there’s an inbuilt matlab tool that does this for us. Thank you!Hi, I have a time series data that loos like this:
time = repmat(5, 10, 1);
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data_1 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
If I have another time series data,
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data2 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
I wanted to know if there’s a simple way to get a final table (data) after taking an average of the stages at each duration timepoint. I thought of assigning the three stages A, B, and C integer values and then taking the average at each time point. The round off value that is the closest to the integer is assigned the same stage. For example, A = 0, B =1, C = 2. In the MWE above, at the first time point, we have the average = 0 so "data" will have A as the first stage.
I was wondering if there is a neater way to go about this. Or if there’s an inbuilt matlab tool that does this for us. Thank you! Hi, I have a time series data that loos like this:
time = repmat(5, 10, 1);
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data_1 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
If I have another time series data,
stages = {‘A’, ‘B’, ‘C’};
stage = stages(randi(numel(stages), 10, 1))’;
stage = cellstr(stage);
data2 = table(time, stage, ‘VariableNames’, {‘time’, ‘stage’})
I wanted to know if there’s a simple way to get a final table (data) after taking an average of the stages at each duration timepoint. I thought of assigning the three stages A, B, and C integer values and then taking the average at each time point. The round off value that is the closest to the integer is assigned the same stage. For example, A = 0, B =1, C = 2. In the MWE above, at the first time point, we have the average = 0 so "data" will have A as the first stage.
I was wondering if there is a neater way to go about this. Or if there’s an inbuilt matlab tool that does this for us. Thank you! averaging labels, sum, mean MATLAB Answers — New Questions
Why License Manager Error -9,57 if the username MatLicence/Window is the same?
Why License Manager Error -9,57 if the username MatLicence/Window is the same?Why License Manager Error -9,57 if the username MatLicence/Window is the same? Why License Manager Error -9,57 if the username MatLicence/Window is the same? licence, matlab MATLAB Answers — New Questions
How can I fix my Runge Kutta (4th order) method to solve a 2nd order ODE?
solve x”(t) +δx'(t) + αx(t) + βx(t)^3 = γcos(ωt), x(0)=0 , x'(0)=0
clc
clear;
h=1;
delta = 0.1;
alpha = -1;
beta = 0.25;
gamma = 2.5;
omega = 2;
t(1)=0;
z(1)=0;
x(1)=0;
d=(gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z)
g=@(t,x,z) z;
f=@(t,x,z) (gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z);
for i=1:50
L1 = h*g(t, x, z);
k1 = h*f(t, x, z);
L2 = h*g(t+h/2, x+k1/2, z+L1/2);
k2 = h*f(t+h/2, x+k1/2, z+L1/2);
L3 = h*g(t+h/2, x+k2/2, z+L2/2);
k3 = h*f(t+h/2, x+k2/2, z+L2/2);
L4 = h*g(t+h, x+k3, z+L3);
k4 = h*f(t+h, x+k3, z+L3);
z = z + (L1+2*L2+2*L3+L4)/6;
x = x + (L1+2*L2+2*L3+L4)/6;
t= t+h;
fprintf(‘i=%8.0f, t=%8.2f, x=%8.6f, z=%8.6fn’,i,t,x,z)
plot(t,z,’-*r’)
hold on
plot(t,x,’-ob’)
endsolve x”(t) +δx'(t) + αx(t) + βx(t)^3 = γcos(ωt), x(0)=0 , x'(0)=0
clc
clear;
h=1;
delta = 0.1;
alpha = -1;
beta = 0.25;
gamma = 2.5;
omega = 2;
t(1)=0;
z(1)=0;
x(1)=0;
d=(gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z)
g=@(t,x,z) z;
f=@(t,x,z) (gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z);
for i=1:50
L1 = h*g(t, x, z);
k1 = h*f(t, x, z);
L2 = h*g(t+h/2, x+k1/2, z+L1/2);
k2 = h*f(t+h/2, x+k1/2, z+L1/2);
L3 = h*g(t+h/2, x+k2/2, z+L2/2);
k3 = h*f(t+h/2, x+k2/2, z+L2/2);
L4 = h*g(t+h, x+k3, z+L3);
k4 = h*f(t+h, x+k3, z+L3);
z = z + (L1+2*L2+2*L3+L4)/6;
x = x + (L1+2*L2+2*L3+L4)/6;
t= t+h;
fprintf(‘i=%8.0f, t=%8.2f, x=%8.6f, z=%8.6fn’,i,t,x,z)
plot(t,z,’-*r’)
hold on
plot(t,x,’-ob’)
end solve x”(t) +δx'(t) + αx(t) + βx(t)^3 = γcos(ωt), x(0)=0 , x'(0)=0
clc
clear;
h=1;
delta = 0.1;
alpha = -1;
beta = 0.25;
gamma = 2.5;
omega = 2;
t(1)=0;
z(1)=0;
x(1)=0;
d=(gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z)
g=@(t,x,z) z;
f=@(t,x,z) (gamma*(cos(omega*t)))-(beta*(x^3))-(alpha*x)-(delta*z);
for i=1:50
L1 = h*g(t, x, z);
k1 = h*f(t, x, z);
L2 = h*g(t+h/2, x+k1/2, z+L1/2);
k2 = h*f(t+h/2, x+k1/2, z+L1/2);
L3 = h*g(t+h/2, x+k2/2, z+L2/2);
k3 = h*f(t+h/2, x+k2/2, z+L2/2);
L4 = h*g(t+h, x+k3, z+L3);
k4 = h*f(t+h, x+k3, z+L3);
z = z + (L1+2*L2+2*L3+L4)/6;
x = x + (L1+2*L2+2*L3+L4)/6;
t= t+h;
fprintf(‘i=%8.0f, t=%8.2f, x=%8.6f, z=%8.6fn’,i,t,x,z)
plot(t,z,’-*r’)
hold on
plot(t,x,’-ob’)
end matlab, differential equations MATLAB Answers — New Questions
在matlab function中导入net,但是出现了以下问题,尝试过6.3和8.1版本的MinG64,但是一直报错。Deep learning code generation using MinGW64 Compiler (C++) toolchain is not supported for mkldnn target.
Post Content Post Content mingw64, mkldnn MATLAB Answers — New Questions
How to implement RIS(reconfigurable intelligent surface) in a FSO using gamma-gamma channel in MATLAB?
whats the MATLAB code for implementing this?whats the MATLAB code for implementing this? whats the MATLAB code for implementing this? wireless, fso, ris, communication, digital signal processing MATLAB Answers — New Questions
Can spectrumAnalyzer show the power level of complex I&Q signal?
I created a complex linear frequency modulated Chirp signal (constant envelop) anad complex noise. When I use spectrumAnalyzer within the MATLAB live script, it shows non-constant spectrum. Is there a way to show complex signal’s power and noise?
% For repeatable simulations, set the random number generator to default
rng default;
noisesigI = wgn(numSamples,1,10*log10(N))’;
noisesigQ = wgn(numSamples,1,10*log10(N))’;
noisesig = 1/(sqrt(2))*complex(noisesigI,noisesigQ);
rxwaveform = (scaledsig + noisesig);
% Scale the received signal for having unit power
Scaled_rxwaveform = rxwaveform/rms(rxwaveform);
ShowVisualizations =1;
if ShowVisualizations == 1
rxscope = spectrumAnalyzer(SampleRate = baseFs, …
PlotAsTwoSidedSpectrum = true, …
SpectrumType = "Power", …
SpectrumUnits = "dBW", …
Title = "Received signal BB UDC + Noise spectrum");
rxscope(rxwaveform’, noisesig’,scaledsig’); %scope accepts only column vec.
endI created a complex linear frequency modulated Chirp signal (constant envelop) anad complex noise. When I use spectrumAnalyzer within the MATLAB live script, it shows non-constant spectrum. Is there a way to show complex signal’s power and noise?
% For repeatable simulations, set the random number generator to default
rng default;
noisesigI = wgn(numSamples,1,10*log10(N))’;
noisesigQ = wgn(numSamples,1,10*log10(N))’;
noisesig = 1/(sqrt(2))*complex(noisesigI,noisesigQ);
rxwaveform = (scaledsig + noisesig);
% Scale the received signal for having unit power
Scaled_rxwaveform = rxwaveform/rms(rxwaveform);
ShowVisualizations =1;
if ShowVisualizations == 1
rxscope = spectrumAnalyzer(SampleRate = baseFs, …
PlotAsTwoSidedSpectrum = true, …
SpectrumType = "Power", …
SpectrumUnits = "dBW", …
Title = "Received signal BB UDC + Noise spectrum");
rxscope(rxwaveform’, noisesig’,scaledsig’); %scope accepts only column vec.
end I created a complex linear frequency modulated Chirp signal (constant envelop) anad complex noise. When I use spectrumAnalyzer within the MATLAB live script, it shows non-constant spectrum. Is there a way to show complex signal’s power and noise?
% For repeatable simulations, set the random number generator to default
rng default;
noisesigI = wgn(numSamples,1,10*log10(N))’;
noisesigQ = wgn(numSamples,1,10*log10(N))’;
noisesig = 1/(sqrt(2))*complex(noisesigI,noisesigQ);
rxwaveform = (scaledsig + noisesig);
% Scale the received signal for having unit power
Scaled_rxwaveform = rxwaveform/rms(rxwaveform);
ShowVisualizations =1;
if ShowVisualizations == 1
rxscope = spectrumAnalyzer(SampleRate = baseFs, …
PlotAsTwoSidedSpectrum = true, …
SpectrumType = "Power", …
SpectrumUnits = "dBW", …
Title = "Received signal BB UDC + Noise spectrum");
rxscope(rxwaveform’, noisesig’,scaledsig’); %scope accepts only column vec.
end spectrumanalyzer, signal processing MATLAB Answers — New Questions
matlab recent versions editor left side white margin
Regarding the issue outlined in the following thread where the poster asks about the white margin on the left of the live editor:
https://in.mathworks.com/matlabcentral/answers/1596289-why-matlab-2021b-livescript-has-large-left-margin-column
The white margin on the left appears in the regular editor as well. See the image below. Not only is this white margin ugly but it is also inconvenient since you expect that you can backspace upto the start of the whitespace only to have the line prematurely deleted. Since it is not part of the editor, why not give a different shade to the margin. Every text editor that I have used has a border before the start of the first character and I think for good reason. If the margin is genuinely not part of the text box, it should be shaded differently.Regarding the issue outlined in the following thread where the poster asks about the white margin on the left of the live editor:
https://in.mathworks.com/matlabcentral/answers/1596289-why-matlab-2021b-livescript-has-large-left-margin-column
The white margin on the left appears in the regular editor as well. See the image below. Not only is this white margin ugly but it is also inconvenient since you expect that you can backspace upto the start of the whitespace only to have the line prematurely deleted. Since it is not part of the editor, why not give a different shade to the margin. Every text editor that I have used has a border before the start of the first character and I think for good reason. If the margin is genuinely not part of the text box, it should be shaded differently. Regarding the issue outlined in the following thread where the poster asks about the white margin on the left of the live editor:
https://in.mathworks.com/matlabcentral/answers/1596289-why-matlab-2021b-livescript-has-large-left-margin-column
The white margin on the left appears in the regular editor as well. See the image below. Not only is this white margin ugly but it is also inconvenient since you expect that you can backspace upto the start of the whitespace only to have the line prematurely deleted. Since it is not part of the editor, why not give a different shade to the margin. Every text editor that I have used has a border before the start of the first character and I think for good reason. If the margin is genuinely not part of the text box, it should be shaded differently. editor, left margin, whitespace MATLAB Answers — New Questions
Flight Log Analyzer Error in extracting GPS and Attitude Data
Hello, I am trying to import a ulog file from a PX4 SITL flight of a UAV performed in Qgrouncontrol. The ulog file works fine and the GPS data and everything else is available when I use the PX4 online flight reviewer (https://review.px4.io/plot_app?log=b0a85256-2690-49bb-8b93-a76311c32c86), however, when I try importing the downloaded ulog file (top right on page you can download it as well), the flight log analyzer app does not display any 2D map. It lists the flight modes and their timestamps, but when I hover over the map view, I get a "Error in extracting GPS and Attitude Data" message.
When importing the ulog from into the workspace using ulogreader there is a long list of topics, and the GPS position seems to be included, but when opening the signal browser after importing the ulog file into the flight log analyzer, many of the topics seem to not have been imported?
Importing the ulog file from the tutorial works, so I am assuming that there is something wrong with my ulog file format/the way the flight analyzer is trying to read the message fields, but I am unsure what exactly the problem is. If anyone has any ideas please let me know
This is the version of Matlab I am running:
MATLAB Version: 24.1.0.2603908 (R2024a) Update 3
Operating System: Microsoft Windows 11 Home Single Language Version 10.0 (Build 22631)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 24.1 (R2024a)
Simulink Version 24.1 (R2024a)
Mapping Toolbox Version 24.1 (R2024a)
Signal Processing Toolbox Version 24.1 (R2024a)
UAV Toolbox Version 24.1 (R2024a)Hello, I am trying to import a ulog file from a PX4 SITL flight of a UAV performed in Qgrouncontrol. The ulog file works fine and the GPS data and everything else is available when I use the PX4 online flight reviewer (https://review.px4.io/plot_app?log=b0a85256-2690-49bb-8b93-a76311c32c86), however, when I try importing the downloaded ulog file (top right on page you can download it as well), the flight log analyzer app does not display any 2D map. It lists the flight modes and their timestamps, but when I hover over the map view, I get a "Error in extracting GPS and Attitude Data" message.
When importing the ulog from into the workspace using ulogreader there is a long list of topics, and the GPS position seems to be included, but when opening the signal browser after importing the ulog file into the flight log analyzer, many of the topics seem to not have been imported?
Importing the ulog file from the tutorial works, so I am assuming that there is something wrong with my ulog file format/the way the flight analyzer is trying to read the message fields, but I am unsure what exactly the problem is. If anyone has any ideas please let me know
This is the version of Matlab I am running:
MATLAB Version: 24.1.0.2603908 (R2024a) Update 3
Operating System: Microsoft Windows 11 Home Single Language Version 10.0 (Build 22631)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 24.1 (R2024a)
Simulink Version 24.1 (R2024a)
Mapping Toolbox Version 24.1 (R2024a)
Signal Processing Toolbox Version 24.1 (R2024a)
UAV Toolbox Version 24.1 (R2024a) Hello, I am trying to import a ulog file from a PX4 SITL flight of a UAV performed in Qgrouncontrol. The ulog file works fine and the GPS data and everything else is available when I use the PX4 online flight reviewer (https://review.px4.io/plot_app?log=b0a85256-2690-49bb-8b93-a76311c32c86), however, when I try importing the downloaded ulog file (top right on page you can download it as well), the flight log analyzer app does not display any 2D map. It lists the flight modes and their timestamps, but when I hover over the map view, I get a "Error in extracting GPS and Attitude Data" message.
When importing the ulog from into the workspace using ulogreader there is a long list of topics, and the GPS position seems to be included, but when opening the signal browser after importing the ulog file into the flight log analyzer, many of the topics seem to not have been imported?
Importing the ulog file from the tutorial works, so I am assuming that there is something wrong with my ulog file format/the way the flight analyzer is trying to read the message fields, but I am unsure what exactly the problem is. If anyone has any ideas please let me know
This is the version of Matlab I am running:
MATLAB Version: 24.1.0.2603908 (R2024a) Update 3
Operating System: Microsoft Windows 11 Home Single Language Version 10.0 (Build 22631)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 24.1 (R2024a)
Simulink Version 24.1 (R2024a)
Mapping Toolbox Version 24.1 (R2024a)
Signal Processing Toolbox Version 24.1 (R2024a)
UAV Toolbox Version 24.1 (R2024a) ulog, px4, qgrouncontrol, flightloganalyzer MATLAB Answers — New Questions
Matlab function “pyenv”
I need to convert one function from Matlab to Python. My Matlab version is R2022.b. Compatible Python version is 3.10. Both Matlab and Python are now installed on my PC. When I run the function "pyenv" in Matlab, I receive empty fields and message "Python commands require a supported version of CPython."
Regarding Matlab, I have: Matlab, Financial Toolbox, Optimization Toolbox, and Statistics and Machine Learning Toolbox.
Do I need to get some other toolboxes for Matlab to be able to see/work with Python?
Thank you.
StefanI need to convert one function from Matlab to Python. My Matlab version is R2022.b. Compatible Python version is 3.10. Both Matlab and Python are now installed on my PC. When I run the function "pyenv" in Matlab, I receive empty fields and message "Python commands require a supported version of CPython."
Regarding Matlab, I have: Matlab, Financial Toolbox, Optimization Toolbox, and Statistics and Machine Learning Toolbox.
Do I need to get some other toolboxes for Matlab to be able to see/work with Python?
Thank you.
Stefan I need to convert one function from Matlab to Python. My Matlab version is R2022.b. Compatible Python version is 3.10. Both Matlab and Python are now installed on my PC. When I run the function "pyenv" in Matlab, I receive empty fields and message "Python commands require a supported version of CPython."
Regarding Matlab, I have: Matlab, Financial Toolbox, Optimization Toolbox, and Statistics and Machine Learning Toolbox.
Do I need to get some other toolboxes for Matlab to be able to see/work with Python?
Thank you.
Stefan matlab to python, python MATLAB Answers — New Questions
syntax error in if else if block
how to write else if condition with multiple inputs
else if condition is throwing an error.how to write else if condition with multiple inputs
else if condition is throwing an error. how to write else if condition with multiple inputs
else if condition is throwing an error. if statement, error MATLAB Answers — New Questions