Tag Archives: matlab
unable to add state in model
how to resolve below error?
Getting error on adding state: missing enumeration for statehow to resolve below error?
Getting error on adding state: missing enumeration for state how to resolve below error?
Getting error on adding state: missing enumeration for state stateflow MATLAB Answers — New Questions
can someone explain this error?
Unrecognized method, property, or field ‘CurrentFileIndex’ for class ‘matlab.io.datastore.CombinedDatastore’.
Error in snake (line 41)
if allImages.CurrentFileIndex <= height(aplostisiImages.Files)Unrecognized method, property, or field ‘CurrentFileIndex’ for class ‘matlab.io.datastore.CombinedDatastore’.
Error in snake (line 41)
if allImages.CurrentFileIndex <= height(aplostisiImages.Files) Unrecognized method, property, or field ‘CurrentFileIndex’ for class ‘matlab.io.datastore.CombinedDatastore’.
Error in snake (line 41)
if allImages.CurrentFileIndex <= height(aplostisiImages.Files) image processing, data acquisition MATLAB Answers — New Questions
Same error values are copied for different input parameters when using MATLAB Experiment Manager
I am trying to run the find gains for PID controller for a powertrain using genetic algorithm. In order to find optimal generations and populations of the genetic algorithm I run almost 1600 experminets in which the following parameters change. So, the input of the model is a WLTP drive cycle (1800s) long. I want to see if I train the Genetic Algorithm on only 30s and find the gains and then using those gains run the whole cycle to calculate the error.
But when I run the experiment I get the same error for all the 3 times with same population and generation combinantion:
However, when i check the simulink model the gains are different for each iteration which means the errors are somehow not updated in the table. I have tried different changes in the code but noting works. Here is the code, if someone could suggest some improvements:
function [mean_abs_error] = Experiment2Function1(params)
tend = params.time;
% Measure the current time before running the simulation
start_simulation_time = tic;
no_var = 2;
lb = [params.lbP params.lbI];
ub = [params.ubP params.ubI];
%GA options
ga_opt = optimoptions(‘ga’,’Display’,’off’,’Generations’,params.generations,’PopulationSize’,params.population,’PlotFcns’,@gaplotbestf);
obj_fn = @(k) optimization_PID(k);
%GA Command
[k, best] = ga((obj_fn),no_var,[],[],[],[],lb,ub,[],ga_opt)
% Measure the simulation time
simulation_time = toc(start_simulation_time);
%%
% Calculate Error
tend = 1800;
sim("Model1.slx")
driveCycleTime = DriveCycle(:,1);
driveCycleSpeed = DriveCycle(:,2);
index1800s = driveCycleTime <= tend;
driveCycle1800s = [driveCycleTime(index1800s), driveCycleSpeed(index1800s)];
% Extract the simulated result for the first 1800 seconds
simulatedTime = tout(tout <= tend);
simulatedSpeed = v_act_lim(tout <= tend);
% Interpolate the simulated result to match the drive cycle time points
simulatedSpeedInterp = interp1(simulatedTime, simulatedSpeed, driveCycle1800s(:, 1), ‘linear’);
% Calculate and plot the error
error = (driveCycle1800s(:, 2) – simulatedSpeedInterp)./ driveCycle1800s(:,2)*100;
abs_error = abs(error);
% Exclude Infinite Values
validIndices = isfinite(abs_error);
validAbsError = abs_error(validIndices);
mean_abs_error = mean(validAbsError)
end
The objective function is as follows:
function cost = optimization_PID(k)
assignin("base", "k", k);
sim("Model1.slx");
itae_values = ITAE.Data;
cost = sum(itae_values);
endI am trying to run the find gains for PID controller for a powertrain using genetic algorithm. In order to find optimal generations and populations of the genetic algorithm I run almost 1600 experminets in which the following parameters change. So, the input of the model is a WLTP drive cycle (1800s) long. I want to see if I train the Genetic Algorithm on only 30s and find the gains and then using those gains run the whole cycle to calculate the error.
But when I run the experiment I get the same error for all the 3 times with same population and generation combinantion:
However, when i check the simulink model the gains are different for each iteration which means the errors are somehow not updated in the table. I have tried different changes in the code but noting works. Here is the code, if someone could suggest some improvements:
function [mean_abs_error] = Experiment2Function1(params)
tend = params.time;
% Measure the current time before running the simulation
start_simulation_time = tic;
no_var = 2;
lb = [params.lbP params.lbI];
ub = [params.ubP params.ubI];
%GA options
ga_opt = optimoptions(‘ga’,’Display’,’off’,’Generations’,params.generations,’PopulationSize’,params.population,’PlotFcns’,@gaplotbestf);
obj_fn = @(k) optimization_PID(k);
%GA Command
[k, best] = ga((obj_fn),no_var,[],[],[],[],lb,ub,[],ga_opt)
% Measure the simulation time
simulation_time = toc(start_simulation_time);
%%
% Calculate Error
tend = 1800;
sim("Model1.slx")
driveCycleTime = DriveCycle(:,1);
driveCycleSpeed = DriveCycle(:,2);
index1800s = driveCycleTime <= tend;
driveCycle1800s = [driveCycleTime(index1800s), driveCycleSpeed(index1800s)];
% Extract the simulated result for the first 1800 seconds
simulatedTime = tout(tout <= tend);
simulatedSpeed = v_act_lim(tout <= tend);
% Interpolate the simulated result to match the drive cycle time points
simulatedSpeedInterp = interp1(simulatedTime, simulatedSpeed, driveCycle1800s(:, 1), ‘linear’);
% Calculate and plot the error
error = (driveCycle1800s(:, 2) – simulatedSpeedInterp)./ driveCycle1800s(:,2)*100;
abs_error = abs(error);
% Exclude Infinite Values
validIndices = isfinite(abs_error);
validAbsError = abs_error(validIndices);
mean_abs_error = mean(validAbsError)
end
The objective function is as follows:
function cost = optimization_PID(k)
assignin("base", "k", k);
sim("Model1.slx");
itae_values = ITAE.Data;
cost = sum(itae_values);
end I am trying to run the find gains for PID controller for a powertrain using genetic algorithm. In order to find optimal generations and populations of the genetic algorithm I run almost 1600 experminets in which the following parameters change. So, the input of the model is a WLTP drive cycle (1800s) long. I want to see if I train the Genetic Algorithm on only 30s and find the gains and then using those gains run the whole cycle to calculate the error.
But when I run the experiment I get the same error for all the 3 times with same population and generation combinantion:
However, when i check the simulink model the gains are different for each iteration which means the errors are somehow not updated in the table. I have tried different changes in the code but noting works. Here is the code, if someone could suggest some improvements:
function [mean_abs_error] = Experiment2Function1(params)
tend = params.time;
% Measure the current time before running the simulation
start_simulation_time = tic;
no_var = 2;
lb = [params.lbP params.lbI];
ub = [params.ubP params.ubI];
%GA options
ga_opt = optimoptions(‘ga’,’Display’,’off’,’Generations’,params.generations,’PopulationSize’,params.population,’PlotFcns’,@gaplotbestf);
obj_fn = @(k) optimization_PID(k);
%GA Command
[k, best] = ga((obj_fn),no_var,[],[],[],[],lb,ub,[],ga_opt)
% Measure the simulation time
simulation_time = toc(start_simulation_time);
%%
% Calculate Error
tend = 1800;
sim("Model1.slx")
driveCycleTime = DriveCycle(:,1);
driveCycleSpeed = DriveCycle(:,2);
index1800s = driveCycleTime <= tend;
driveCycle1800s = [driveCycleTime(index1800s), driveCycleSpeed(index1800s)];
% Extract the simulated result for the first 1800 seconds
simulatedTime = tout(tout <= tend);
simulatedSpeed = v_act_lim(tout <= tend);
% Interpolate the simulated result to match the drive cycle time points
simulatedSpeedInterp = interp1(simulatedTime, simulatedSpeed, driveCycle1800s(:, 1), ‘linear’);
% Calculate and plot the error
error = (driveCycle1800s(:, 2) – simulatedSpeedInterp)./ driveCycle1800s(:,2)*100;
abs_error = abs(error);
% Exclude Infinite Values
validIndices = isfinite(abs_error);
validAbsError = abs_error(validIndices);
mean_abs_error = mean(validAbsError)
end
The objective function is as follows:
function cost = optimization_PID(k)
assignin("base", "k", k);
sim("Model1.slx");
itae_values = ITAE.Data;
cost = sum(itae_values);
end experiment manager, genetic algorithm, error MATLAB Answers — New Questions
s_function 2dof
Hello!!!!
l try to use s_function in simulink and I get this error:
Error in ‘BRAS_2DOF/S-Function1’ while executing MATLAB S-function ‘Dynamique2DOF’, flag = 0 (initialize), at start of simulation.
Caused by:
Subscript indices must either be real positive integers or logicals.
this is my code in joint pieceHello!!!!
l try to use s_function in simulink and I get this error:
Error in ‘BRAS_2DOF/S-Function1’ while executing MATLAB S-function ‘Dynamique2DOF’, flag = 0 (initialize), at start of simulation.
Caused by:
Subscript indices must either be real positive integers or logicals.
this is my code in joint piece Hello!!!!
l try to use s_function in simulink and I get this error:
Error in ‘BRAS_2DOF/S-Function1’ while executing MATLAB S-function ‘Dynamique2DOF’, flag = 0 (initialize), at start of simulation.
Caused by:
Subscript indices must either be real positive integers or logicals.
this is my code in joint piece error sfuntion 2dof MATLAB Answers — New Questions
How do I implement typedefs of unions + structure variables in Simulink?
How can I implement a union + structure variable in Simulink so that when I generate code I will get a variable structure with shared access?
I want to duplicate the behaviour of the C-code below so I can use typedef struct in several similar data sets.
%Code using C
typedef struct st_module_data{
struct st_FaultInfo{
union{
uint8 AllFaults;
struct {
uint8 OVP :1;
uint8 OVW :1;
uint8 UVP :1;
uint8 UVW :1;
uint8 OCP :1;
uint8 OCW :1;
uint8 OTP :1;
uint8 OTW :1;
}
}
}Fault;
struct st_MeasuredData{
uint8 voltage = 0;
uint8 current = 0;
uint8 temperature = 0;
}Measured;
};
st_module_data s_module_01;
s_module_01.Fault.AllFaults = 0; % Clears all flags
s_module_01.Fault.OVP = 1; % Sets only the OVP flag
s_module_01.Measured.voltage = ui8_ADC_5V; % Sets the measured voltage to 5V
I was able to recreate the structure and "typedef"-ish callbacks in matlab by using bus editor:
But I am unable to get the union thing working and can only access the lowest heirarchy of the structure – e.g.:
s_module_01.Fault.AllFaults = 0; % How do I implement this?
s_module_01.Fault = 0; % Does not work…
s_module_01.Fault.OVP = 1; % OK – works in Matlab Functions, Simulink and Stateflow
s_module_01.Measured.voltage = ui8_ADC_5V; % OK – works in Matlab Functions, Simulink and StateflowHow can I implement a union + structure variable in Simulink so that when I generate code I will get a variable structure with shared access?
I want to duplicate the behaviour of the C-code below so I can use typedef struct in several similar data sets.
%Code using C
typedef struct st_module_data{
struct st_FaultInfo{
union{
uint8 AllFaults;
struct {
uint8 OVP :1;
uint8 OVW :1;
uint8 UVP :1;
uint8 UVW :1;
uint8 OCP :1;
uint8 OCW :1;
uint8 OTP :1;
uint8 OTW :1;
}
}
}Fault;
struct st_MeasuredData{
uint8 voltage = 0;
uint8 current = 0;
uint8 temperature = 0;
}Measured;
};
st_module_data s_module_01;
s_module_01.Fault.AllFaults = 0; % Clears all flags
s_module_01.Fault.OVP = 1; % Sets only the OVP flag
s_module_01.Measured.voltage = ui8_ADC_5V; % Sets the measured voltage to 5V
I was able to recreate the structure and "typedef"-ish callbacks in matlab by using bus editor:
But I am unable to get the union thing working and can only access the lowest heirarchy of the structure – e.g.:
s_module_01.Fault.AllFaults = 0; % How do I implement this?
s_module_01.Fault = 0; % Does not work…
s_module_01.Fault.OVP = 1; % OK – works in Matlab Functions, Simulink and Stateflow
s_module_01.Measured.voltage = ui8_ADC_5V; % OK – works in Matlab Functions, Simulink and Stateflow How can I implement a union + structure variable in Simulink so that when I generate code I will get a variable structure with shared access?
I want to duplicate the behaviour of the C-code below so I can use typedef struct in several similar data sets.
%Code using C
typedef struct st_module_data{
struct st_FaultInfo{
union{
uint8 AllFaults;
struct {
uint8 OVP :1;
uint8 OVW :1;
uint8 UVP :1;
uint8 UVW :1;
uint8 OCP :1;
uint8 OCW :1;
uint8 OTP :1;
uint8 OTW :1;
}
}
}Fault;
struct st_MeasuredData{
uint8 voltage = 0;
uint8 current = 0;
uint8 temperature = 0;
}Measured;
};
st_module_data s_module_01;
s_module_01.Fault.AllFaults = 0; % Clears all flags
s_module_01.Fault.OVP = 1; % Sets only the OVP flag
s_module_01.Measured.voltage = ui8_ADC_5V; % Sets the measured voltage to 5V
I was able to recreate the structure and "typedef"-ish callbacks in matlab by using bus editor:
But I am unable to get the union thing working and can only access the lowest heirarchy of the structure – e.g.:
s_module_01.Fault.AllFaults = 0; % How do I implement this?
s_module_01.Fault = 0; % Does not work…
s_module_01.Fault.OVP = 1; % OK – works in Matlab Functions, Simulink and Stateflow
s_module_01.Measured.voltage = ui8_ADC_5V; % OK – works in Matlab Functions, Simulink and Stateflow simulink, stateflow, simulink bus editor, structures, union MATLAB Answers — New Questions
Can I export all the trained model from the classification learner app, using a single command?
Dear experts,
I am trying to find out which model performs on a specific dataset. There are 34 models available in the classification learner app. Do we have any option to export all the 34 trained model using a single command? Presently, I’m doing it one at a time.
Thank you in advance.Dear experts,
I am trying to find out which model performs on a specific dataset. There are 34 models available in the classification learner app. Do we have any option to export all the 34 trained model using a single command? Presently, I’m doing it one at a time.
Thank you in advance. Dear experts,
I am trying to find out which model performs on a specific dataset. There are 34 models available in the classification learner app. Do we have any option to export all the 34 trained model using a single command? Presently, I’m doing it one at a time.
Thank you in advance. matlab classification learner app MATLAB Answers — New Questions
Decrease Existing UIGridLayout RowHeight (or ColumnWidth)
I’m trying to decrease an existing uigridlayout’s number of rows and columns. Below I created the figure and grid.
fig = uifigure; % make uifigure
g = uigridlayout(fig); % put uigridlayout in fig
g.RowHeight = {‘1x’ ‘1x’ ‘1x’ ‘1x’}; % assign to uigridlayout 4 rows
g.ColumnWidth = {‘1x’ ‘1x’}; % assign to uigridlayout 2 columns
So, it already exists and has a specified row height and column width dimensions. And I want to change the number of rows and columns in this existing uigridlayout (g)… instead of deleting it and making a new one with the desired number of rows and columnns (e.g. a grid with 3 rows and 3 columns).
I am able to add rows or columns –>
g.ColumnWidth = {‘1x’ ‘1x’ ‘1x’} % assign greater amount of columns to g.ColumnWidth property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
But I can’t seem to be able to remove rows or columns –>
g.RowHeight = {‘1x’ ‘1x’ ‘1x’} % assign lower amount of columns to g.RowHeight property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
How do I decrease the number of rows or columns in this existing uigridlayout?I’m trying to decrease an existing uigridlayout’s number of rows and columns. Below I created the figure and grid.
fig = uifigure; % make uifigure
g = uigridlayout(fig); % put uigridlayout in fig
g.RowHeight = {‘1x’ ‘1x’ ‘1x’ ‘1x’}; % assign to uigridlayout 4 rows
g.ColumnWidth = {‘1x’ ‘1x’}; % assign to uigridlayout 2 columns
So, it already exists and has a specified row height and column width dimensions. And I want to change the number of rows and columns in this existing uigridlayout (g)… instead of deleting it and making a new one with the desired number of rows and columnns (e.g. a grid with 3 rows and 3 columns).
I am able to add rows or columns –>
g.ColumnWidth = {‘1x’ ‘1x’ ‘1x’} % assign greater amount of columns to g.ColumnWidth property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
But I can’t seem to be able to remove rows or columns –>
g.RowHeight = {‘1x’ ‘1x’ ‘1x’} % assign lower amount of columns to g.RowHeight property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
How do I decrease the number of rows or columns in this existing uigridlayout? I’m trying to decrease an existing uigridlayout’s number of rows and columns. Below I created the figure and grid.
fig = uifigure; % make uifigure
g = uigridlayout(fig); % put uigridlayout in fig
g.RowHeight = {‘1x’ ‘1x’ ‘1x’ ‘1x’}; % assign to uigridlayout 4 rows
g.ColumnWidth = {‘1x’ ‘1x’}; % assign to uigridlayout 2 columns
So, it already exists and has a specified row height and column width dimensions. And I want to change the number of rows and columns in this existing uigridlayout (g)… instead of deleting it and making a new one with the desired number of rows and columnns (e.g. a grid with 3 rows and 3 columns).
I am able to add rows or columns –>
g.ColumnWidth = {‘1x’ ‘1x’ ‘1x’} % assign greater amount of columns to g.ColumnWidth property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
But I can’t seem to be able to remove rows or columns –>
g.RowHeight = {‘1x’ ‘1x’ ‘1x’} % assign lower amount of columns to g.RowHeight property
output –>
g =
GridLayout with properties:
RowHeight: {‘1x’ ‘1x’ ‘1x’ ‘1x’}
ColumnWidth: {‘1x’ ‘1x’ ‘1x’}
How do I decrease the number of rows or columns in this existing uigridlayout? uifigure, uigridlayout, rows and columns, editing properties MATLAB Answers — New Questions
How to continue drawing bar charts on the basis of drawing maps
How to continue drawing bar charts on the basis of drawing maps using MATLAB softwore? Just like this one.How to continue drawing bar charts on the basis of drawing maps using MATLAB softwore? Just like this one. How to continue drawing bar charts on the basis of drawing maps using MATLAB softwore? Just like this one. mapping toolbox MATLAB Answers — New Questions
try catch does not catch an error in save function
Consider
try
statements
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
where statements is a block of codes. I’m sure that statements is a good block of codes, i.e., without errors. This leads to no display of message, and it fails to save (because the directory does not exist).
On the other hand,
statements
try
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
Now, this does lead to displaying
Cannot create ‘kimscalprr.mat’ because ‘gpfshomejk23bdkimjmp_25may2024MATLAB’ does not exist.
as it should. I’m finding that save has a lot of issues besides this, but this seems the most basic. Can anyone tell me why this difference occurs?
Thank youConsider
try
statements
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
where statements is a block of codes. I’m sure that statements is a good block of codes, i.e., without errors. This leads to no display of message, and it fails to save (because the directory does not exist).
On the other hand,
statements
try
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
Now, this does lead to displaying
Cannot create ‘kimscalprr.mat’ because ‘gpfshomejk23bdkimjmp_25may2024MATLAB’ does not exist.
as it should. I’m finding that save has a lot of issues besides this, but this seems the most basic. Can anyone tell me why this difference occurs?
Thank you Consider
try
statements
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
where statements is a block of codes. I’m sure that statements is a good block of codes, i.e., without errors. This leads to no display of message, and it fails to save (because the directory does not exist).
On the other hand,
statements
try
save("/gpfs/home/jk23bd/kimjmp_25may2024/MATLAB/kimscalprr.mat","kimScalingPriors");
catch ME
disp(ME.message)
end
Now, this does lead to displaying
Cannot create ‘kimscalprr.mat’ because ‘gpfshomejk23bdkimjmp_25may2024MATLAB’ does not exist.
as it should. I’m finding that save has a lot of issues besides this, but this seems the most basic. Can anyone tell me why this difference occurs?
Thank you try, catch, error, save MATLAB Answers — New Questions
我不知道应该输入的密钥是什么?
已经安装好,但是启动需要密钥。我不知道应该输入什么?已经安装好,但是启动需要密钥。我不知道应该输入什么? 已经安装好,但是启动需要密钥。我不知道应该输入什么? secrete key MATLAB Answers — New Questions
Matlab Engine API for Python: multidimarray for python
I am trying to install matlab engine api for python and i am using google colab for python. I installed matlab engine api for python using the steps mentioned in the documentation for MacOS but multidimarrayforpython is not getting downloaded.I am trying to install matlab engine api for python and i am using google colab for python. I installed matlab engine api for python using the steps mentioned in the documentation for MacOS but multidimarrayforpython is not getting downloaded. I am trying to install matlab engine api for python and i am using google colab for python. I installed matlab engine api for python using the steps mentioned in the documentation for MacOS but multidimarrayforpython is not getting downloaded. matlab engine api for python, multidimarrayforpython MATLAB Answers — New Questions
Error in sym (line 268) S.s = tomupad(x); Error in untit2121led (line 33) An=simplify(sym(strrep(char(An), ‘sin (pi*n)’,’O’))); Related documentation
a parece este error en el codigo:
clc
clear all
close all
syms t n
A=[0 1 2];
f=[t -t+2];
t=sym(f);
T=max(A)-min(A);
wo=2*pi/T;
Ao=0;
for i=1:length (f)
Ao=Ao+int(f(i), ‘t’,A(i),A(i+1));
end
Ao=simplify(Ao/(T));
An=0;
for i=i:length (f)
An=An+int(f(i) *cos(n*wo*t), A(i),A(i+1));
end
An=simplify(2*An/T);
Bn=0;
for i=1:length (f)
Bn=Bn+int(f(i) *sin(n*wo*t), A(i),A(i+1));
end
Bn=simplify(2*Bn/T);
An=char(An);
Bn=char(Bn);
An=simplify(sym(strrep(char(An), ‘sin (pi*n)’,’O’)));
Bn=simplify(sym(atrrep(char(Bn), ‘sin (pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘cos (pi*n)’, ‘(-1)^O’)));
Bn=simplify(sym(strrep(char(Bn), ‘cos (pi*n)’, ‘(-1)^O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’O’)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’1′)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’1′)));
disp(‘Ao’)
pretty(An)
disp(‘An’)
pretty(Bn)
disp(‘Bn’)
pretty(Bn)
x=linspace(min(A), max(A),1000);
fx=0;
for i=1:length(A)-1
if nod (i,2)==1
fx=fx+((x>=A(i)) & (x<=A(i+1))).*subs(f(i),x);
else
fx=fx+((x>A(i)) & (x<A(i+1))).*subs(f(i),x);
end
end
plot(x,fx,’Linewidth’,2); hold on
plot(x+max(x)-min(x),fx,’Linewidth’,2)
plot(x-max(x)+min(x),fx,’Linewidth’,2)
plot([max(x) max(x)] ,[fx(i) fx(end)],’Linewidth’,2)
plot([min(x) min(x)] ,[fx(end) fx(i)],’Linewidth’,2)
grid ona parece este error en el codigo:
clc
clear all
close all
syms t n
A=[0 1 2];
f=[t -t+2];
t=sym(f);
T=max(A)-min(A);
wo=2*pi/T;
Ao=0;
for i=1:length (f)
Ao=Ao+int(f(i), ‘t’,A(i),A(i+1));
end
Ao=simplify(Ao/(T));
An=0;
for i=i:length (f)
An=An+int(f(i) *cos(n*wo*t), A(i),A(i+1));
end
An=simplify(2*An/T);
Bn=0;
for i=1:length (f)
Bn=Bn+int(f(i) *sin(n*wo*t), A(i),A(i+1));
end
Bn=simplify(2*Bn/T);
An=char(An);
Bn=char(Bn);
An=simplify(sym(strrep(char(An), ‘sin (pi*n)’,’O’)));
Bn=simplify(sym(atrrep(char(Bn), ‘sin (pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘cos (pi*n)’, ‘(-1)^O’)));
Bn=simplify(sym(strrep(char(Bn), ‘cos (pi*n)’, ‘(-1)^O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’O’)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’1′)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’1′)));
disp(‘Ao’)
pretty(An)
disp(‘An’)
pretty(Bn)
disp(‘Bn’)
pretty(Bn)
x=linspace(min(A), max(A),1000);
fx=0;
for i=1:length(A)-1
if nod (i,2)==1
fx=fx+((x>=A(i)) & (x<=A(i+1))).*subs(f(i),x);
else
fx=fx+((x>A(i)) & (x<A(i+1))).*subs(f(i),x);
end
end
plot(x,fx,’Linewidth’,2); hold on
plot(x+max(x)-min(x),fx,’Linewidth’,2)
plot(x-max(x)+min(x),fx,’Linewidth’,2)
plot([max(x) max(x)] ,[fx(i) fx(end)],’Linewidth’,2)
plot([min(x) min(x)] ,[fx(end) fx(i)],’Linewidth’,2)
grid on a parece este error en el codigo:
clc
clear all
close all
syms t n
A=[0 1 2];
f=[t -t+2];
t=sym(f);
T=max(A)-min(A);
wo=2*pi/T;
Ao=0;
for i=1:length (f)
Ao=Ao+int(f(i), ‘t’,A(i),A(i+1));
end
Ao=simplify(Ao/(T));
An=0;
for i=i:length (f)
An=An+int(f(i) *cos(n*wo*t), A(i),A(i+1));
end
An=simplify(2*An/T);
Bn=0;
for i=1:length (f)
Bn=Bn+int(f(i) *sin(n*wo*t), A(i),A(i+1));
end
Bn=simplify(2*Bn/T);
An=char(An);
Bn=char(Bn);
An=simplify(sym(strrep(char(An), ‘sin (pi*n)’,’O’)));
Bn=simplify(sym(atrrep(char(Bn), ‘sin (pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘cos (pi*n)’, ‘(-1)^O’)));
Bn=simplify(sym(strrep(char(Bn), ‘cos (pi*n)’, ‘(-1)^O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’O’)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’O’)));
An=simplify(sym(strrep(char(An), ‘sin (2*pi*n)’,’1′)));
Bn=simplify(sym(strrep(char(Bn), ‘sin (2*pi*n)’,’1′)));
disp(‘Ao’)
pretty(An)
disp(‘An’)
pretty(Bn)
disp(‘Bn’)
pretty(Bn)
x=linspace(min(A), max(A),1000);
fx=0;
for i=1:length(A)-1
if nod (i,2)==1
fx=fx+((x>=A(i)) & (x<=A(i+1))).*subs(f(i),x);
else
fx=fx+((x>A(i)) & (x<A(i+1))).*subs(f(i),x);
end
end
plot(x,fx,’Linewidth’,2); hold on
plot(x+max(x)-min(x),fx,’Linewidth’,2)
plot(x-max(x)+min(x),fx,’Linewidth’,2)
plot([max(x) max(x)] ,[fx(i) fx(end)],’Linewidth’,2)
plot([min(x) min(x)] ,[fx(end) fx(i)],’Linewidth’,2)
grid on error, s.s = tomupad(x) MATLAB Answers — New Questions
How to compute the mean of several stochastic realizations
I have a code that can be used to plot sample paths of the stochastic differential equation competition model
clear
a10=2; a20=1.5; a11=0.03;
a12=0.02; a21=0.01; a22=0.04;
x1(1)=50; x2(1)=25;
k=5000; T=5; dt=T/k;
num_realizations=10;
for j=1:num_realizations
for i=1:k
rn=randn(2,1);
f1=x1(i)*(a10-a11*x1(i)-a12*x2(i));
f2=x2(i)*(a20-a21*x1(i)-a22*x2(i));
g1=x1(i)*(a10+a11*x1(i)+a12*x2(i));
g2=x2(i)*(a20+a21*x1(i)+a22*x2(i));
x1(i+1)=x1(i)+f1*dt+sqrt(g1*dt)*rn(1);
x2(i+1)=x2(i)+f2*dt+sqrt(g2*dt)*rn(2);
x1p=[x1(i+1)>0];
x2p=[x2(i+1)>0];
x1(i+1)=x1(i+1)*x1p;
x2(i+1)=x2(i+1)*x2p;
end
plot([0:dt:T],x1,’Color’,rand(1,3),’LineWidth’,1);
hold on
plot([0:dt:T],x2,’Color’,rand(1,3),’LineWidth’,1);
ylabel(‘Population Size’); xlabel(‘Time’);
end
My question is how to plot the average of each population, including the initial conditions?I have a code that can be used to plot sample paths of the stochastic differential equation competition model
clear
a10=2; a20=1.5; a11=0.03;
a12=0.02; a21=0.01; a22=0.04;
x1(1)=50; x2(1)=25;
k=5000; T=5; dt=T/k;
num_realizations=10;
for j=1:num_realizations
for i=1:k
rn=randn(2,1);
f1=x1(i)*(a10-a11*x1(i)-a12*x2(i));
f2=x2(i)*(a20-a21*x1(i)-a22*x2(i));
g1=x1(i)*(a10+a11*x1(i)+a12*x2(i));
g2=x2(i)*(a20+a21*x1(i)+a22*x2(i));
x1(i+1)=x1(i)+f1*dt+sqrt(g1*dt)*rn(1);
x2(i+1)=x2(i)+f2*dt+sqrt(g2*dt)*rn(2);
x1p=[x1(i+1)>0];
x2p=[x2(i+1)>0];
x1(i+1)=x1(i+1)*x1p;
x2(i+1)=x2(i+1)*x2p;
end
plot([0:dt:T],x1,’Color’,rand(1,3),’LineWidth’,1);
hold on
plot([0:dt:T],x2,’Color’,rand(1,3),’LineWidth’,1);
ylabel(‘Population Size’); xlabel(‘Time’);
end
My question is how to plot the average of each population, including the initial conditions? I have a code that can be used to plot sample paths of the stochastic differential equation competition model
clear
a10=2; a20=1.5; a11=0.03;
a12=0.02; a21=0.01; a22=0.04;
x1(1)=50; x2(1)=25;
k=5000; T=5; dt=T/k;
num_realizations=10;
for j=1:num_realizations
for i=1:k
rn=randn(2,1);
f1=x1(i)*(a10-a11*x1(i)-a12*x2(i));
f2=x2(i)*(a20-a21*x1(i)-a22*x2(i));
g1=x1(i)*(a10+a11*x1(i)+a12*x2(i));
g2=x2(i)*(a20+a21*x1(i)+a22*x2(i));
x1(i+1)=x1(i)+f1*dt+sqrt(g1*dt)*rn(1);
x2(i+1)=x2(i)+f2*dt+sqrt(g2*dt)*rn(2);
x1p=[x1(i+1)>0];
x2p=[x2(i+1)>0];
x1(i+1)=x1(i+1)*x1p;
x2(i+1)=x2(i+1)*x2p;
end
plot([0:dt:T],x1,’Color’,rand(1,3),’LineWidth’,1);
hold on
plot([0:dt:T],x2,’Color’,rand(1,3),’LineWidth’,1);
ylabel(‘Population Size’); xlabel(‘Time’);
end
My question is how to plot the average of each population, including the initial conditions? the euler-maruyama method, sde models MATLAB Answers — New Questions
Stop/Delete Timer Issues While Closing GUI
Hi,
I use a timer to update an axes in a GUI. I want to handle the case in which the user closes the window while the timer is still running, i.e., the axes still beeing updated.
The Problem:
However, every so often the execution time of the TimerFcn is longer than the timers period (depending on the pc’s performance). This can cause an error when closing the GUI while the timer is still running.
Error while evaluating TimerFcn for timer ‘timer-1’
Bad handle
FYI, I use
T = timerfind;
if ~isempty(T)
stop(T)
delete(T)
end
in the figure’s delete function. Apparently, the TimerFcn is still being called after the execution of the figure’s delete function. Hence, within my TimerFcn an error occurs during a call to
cla(myaxes),
for cla expects a valid figure handle (though the GUI’s figure has just been deleted).
All in all, it seems that the execution time being larger than the timer period is causing this. Of course I could reduce the timer period, but this is not desirable. I figured out a workaround by using a try-catch phrase within the TimerFcn, however it’s not a proper solution.
Question:
Is there any way to force the TimerFcn to stop and somehow flush its executin queue/event buffer, regardless of its current state? Any thoughts about solving this issue are very welcome!
Thank you in advance!
HannesHi,
I use a timer to update an axes in a GUI. I want to handle the case in which the user closes the window while the timer is still running, i.e., the axes still beeing updated.
The Problem:
However, every so often the execution time of the TimerFcn is longer than the timers period (depending on the pc’s performance). This can cause an error when closing the GUI while the timer is still running.
Error while evaluating TimerFcn for timer ‘timer-1’
Bad handle
FYI, I use
T = timerfind;
if ~isempty(T)
stop(T)
delete(T)
end
in the figure’s delete function. Apparently, the TimerFcn is still being called after the execution of the figure’s delete function. Hence, within my TimerFcn an error occurs during a call to
cla(myaxes),
for cla expects a valid figure handle (though the GUI’s figure has just been deleted).
All in all, it seems that the execution time being larger than the timer period is causing this. Of course I could reduce the timer period, but this is not desirable. I figured out a workaround by using a try-catch phrase within the TimerFcn, however it’s not a proper solution.
Question:
Is there any way to force the TimerFcn to stop and somehow flush its executin queue/event buffer, regardless of its current state? Any thoughts about solving this issue are very welcome!
Thank you in advance!
Hannes Hi,
I use a timer to update an axes in a GUI. I want to handle the case in which the user closes the window while the timer is still running, i.e., the axes still beeing updated.
The Problem:
However, every so often the execution time of the TimerFcn is longer than the timers period (depending on the pc’s performance). This can cause an error when closing the GUI while the timer is still running.
Error while evaluating TimerFcn for timer ‘timer-1’
Bad handle
FYI, I use
T = timerfind;
if ~isempty(T)
stop(T)
delete(T)
end
in the figure’s delete function. Apparently, the TimerFcn is still being called after the execution of the figure’s delete function. Hence, within my TimerFcn an error occurs during a call to
cla(myaxes),
for cla expects a valid figure handle (though the GUI’s figure has just been deleted).
All in all, it seems that the execution time being larger than the timer period is causing this. Of course I could reduce the timer period, but this is not desirable. I figured out a workaround by using a try-catch phrase within the TimerFcn, however it’s not a proper solution.
Question:
Is there any way to force the TimerFcn to stop and somehow flush its executin queue/event buffer, regardless of its current state? Any thoughts about solving this issue are very welcome!
Thank you in advance!
Hannes timer, closing gui MATLAB Answers — New Questions
How do I generate a native crash dump for MATLAB on a hp ?
MotoHawk 2023a & MatLABR2023a MATLAB Log File: C:UsersHPAppDataLocalTempmatlab_crash_dump.19880-1
————————————————
MATLAB Log File
————————————————
——————————————————————————–
Unknown exception 0xe0434352 detected at 2024-07-17 02:56:27 +0300
——————————————————————————–
Configuration:
Crash Decoding : Disabled – No sandbox or build area path
Crash Mode : continue (default)
Default Encoding : UTF-8
Deployed : false
Graphics Driver : Uninitialized hardware
Graphics card 1 : Intel Corporation ( 0x8086 ) Intel(R) Iris(R) Plus Graphics Version 27.20.100.9316 (2021-2-18)
Java Version : Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
MATLAB Architecture : win64
MATLAB Entitlement ID : 3514034
MATLAB Root : C:Program FilesMATLABR2023a
MATLAB Version : 9.14.0.2489007 (R2023a) Update 6
OpenGL : hardware
Operating System : Microsoft Windows 10 Entreprise
Process ID : 19880
Processor ID : x86 Family 6 Model 126 Stepping 5, GenuineIntel
Session Key : 8649544e-ea37-4935-bc46-e5404932964b
Window System : Version 10.0 (Build 19045)
Fault Count: 1
Abnormal termination:
Unknown exception 0xe0434352
Current Thread: ‘MCR 0 interpreter thread’ id 26564
Register State (from fault):
RAX = 00007ff9ba9663e8 RBX = 000000411e3f65a0
RCX = 000000411e3f5220 RDX = 000000411e3f5d80
RSP = 000000411e3f49e0 RBP = 000000411e3f50c0
RSI = 000000411e3f73b0 RDI = 000000411e3f5860
R8 = 0000000000000001 R9 = 000000411e3f4250
R10 = 00007ff9d18c2554 R11 = 0000000000000000
R12 = 0000000000000000 R13 = 000000411e3f4b48
R14 = 000000411e3f5860 R15 = 000000411e3f59c8
RIP = 00007ff9cf27b699 EFL = 00000206
CS = 0033 FS = 0053 GS = 002b
Stack Trace (from fault):
[ 0] 0x00007ff9cf27b699 C:WindowsSystem32KERNELBASE.dll+00243353 RaiseException+00000105
[ 1] 0x00007ff9ba0c2743 C:WindowsSYSTEM32VCRUNTIME140_1_CLR0400.dll+00010051 _NLG_Return2+00005619
[ 2] 0x00007ff9d1911c96 C:WindowsSYSTEM32ntdll.dll+00662678 RtlCaptureContext2+00001190
[ 3] 0x00007ff9ba16e012 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00319506 StrongNameTokenFromPublicKey+00192754
[ 4] 0x00007ff9ba185e56 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00417366 StrongNameTokenFromPublicKey+00290614
[ 5] 0x00007ff9ba15891b C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00231707 StrongNameTokenFromPublicKey+00104955
[ 6] 0x00007ff9ba2ae7b5 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+01632181 DllCanUnloadNowInternal+00011525
[ 7] 0x00007ff95abb1ce7 <unknown-module>+00000000
[ 8] 0x00007ff955214238 C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016952 mexFunction+00012856
[ 9] 0x00007ff95521422c C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016940 mexFunction+00012844
[ 10] 0x0000000000000001 <unknown-module>+00000000
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.MotoHawk 2023a & MatLABR2023a MATLAB Log File: C:UsersHPAppDataLocalTempmatlab_crash_dump.19880-1
————————————————
MATLAB Log File
————————————————
——————————————————————————–
Unknown exception 0xe0434352 detected at 2024-07-17 02:56:27 +0300
——————————————————————————–
Configuration:
Crash Decoding : Disabled – No sandbox or build area path
Crash Mode : continue (default)
Default Encoding : UTF-8
Deployed : false
Graphics Driver : Uninitialized hardware
Graphics card 1 : Intel Corporation ( 0x8086 ) Intel(R) Iris(R) Plus Graphics Version 27.20.100.9316 (2021-2-18)
Java Version : Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
MATLAB Architecture : win64
MATLAB Entitlement ID : 3514034
MATLAB Root : C:Program FilesMATLABR2023a
MATLAB Version : 9.14.0.2489007 (R2023a) Update 6
OpenGL : hardware
Operating System : Microsoft Windows 10 Entreprise
Process ID : 19880
Processor ID : x86 Family 6 Model 126 Stepping 5, GenuineIntel
Session Key : 8649544e-ea37-4935-bc46-e5404932964b
Window System : Version 10.0 (Build 19045)
Fault Count: 1
Abnormal termination:
Unknown exception 0xe0434352
Current Thread: ‘MCR 0 interpreter thread’ id 26564
Register State (from fault):
RAX = 00007ff9ba9663e8 RBX = 000000411e3f65a0
RCX = 000000411e3f5220 RDX = 000000411e3f5d80
RSP = 000000411e3f49e0 RBP = 000000411e3f50c0
RSI = 000000411e3f73b0 RDI = 000000411e3f5860
R8 = 0000000000000001 R9 = 000000411e3f4250
R10 = 00007ff9d18c2554 R11 = 0000000000000000
R12 = 0000000000000000 R13 = 000000411e3f4b48
R14 = 000000411e3f5860 R15 = 000000411e3f59c8
RIP = 00007ff9cf27b699 EFL = 00000206
CS = 0033 FS = 0053 GS = 002b
Stack Trace (from fault):
[ 0] 0x00007ff9cf27b699 C:WindowsSystem32KERNELBASE.dll+00243353 RaiseException+00000105
[ 1] 0x00007ff9ba0c2743 C:WindowsSYSTEM32VCRUNTIME140_1_CLR0400.dll+00010051 _NLG_Return2+00005619
[ 2] 0x00007ff9d1911c96 C:WindowsSYSTEM32ntdll.dll+00662678 RtlCaptureContext2+00001190
[ 3] 0x00007ff9ba16e012 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00319506 StrongNameTokenFromPublicKey+00192754
[ 4] 0x00007ff9ba185e56 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00417366 StrongNameTokenFromPublicKey+00290614
[ 5] 0x00007ff9ba15891b C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00231707 StrongNameTokenFromPublicKey+00104955
[ 6] 0x00007ff9ba2ae7b5 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+01632181 DllCanUnloadNowInternal+00011525
[ 7] 0x00007ff95abb1ce7 <unknown-module>+00000000
[ 8] 0x00007ff955214238 C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016952 mexFunction+00012856
[ 9] 0x00007ff95521422c C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016940 mexFunction+00012844
[ 10] 0x0000000000000001 <unknown-module>+00000000
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files. MotoHawk 2023a & MatLABR2023a MATLAB Log File: C:UsersHPAppDataLocalTempmatlab_crash_dump.19880-1
————————————————
MATLAB Log File
————————————————
——————————————————————————–
Unknown exception 0xe0434352 detected at 2024-07-17 02:56:27 +0300
——————————————————————————–
Configuration:
Crash Decoding : Disabled – No sandbox or build area path
Crash Mode : continue (default)
Default Encoding : UTF-8
Deployed : false
Graphics Driver : Uninitialized hardware
Graphics card 1 : Intel Corporation ( 0x8086 ) Intel(R) Iris(R) Plus Graphics Version 27.20.100.9316 (2021-2-18)
Java Version : Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
MATLAB Architecture : win64
MATLAB Entitlement ID : 3514034
MATLAB Root : C:Program FilesMATLABR2023a
MATLAB Version : 9.14.0.2489007 (R2023a) Update 6
OpenGL : hardware
Operating System : Microsoft Windows 10 Entreprise
Process ID : 19880
Processor ID : x86 Family 6 Model 126 Stepping 5, GenuineIntel
Session Key : 8649544e-ea37-4935-bc46-e5404932964b
Window System : Version 10.0 (Build 19045)
Fault Count: 1
Abnormal termination:
Unknown exception 0xe0434352
Current Thread: ‘MCR 0 interpreter thread’ id 26564
Register State (from fault):
RAX = 00007ff9ba9663e8 RBX = 000000411e3f65a0
RCX = 000000411e3f5220 RDX = 000000411e3f5d80
RSP = 000000411e3f49e0 RBP = 000000411e3f50c0
RSI = 000000411e3f73b0 RDI = 000000411e3f5860
R8 = 0000000000000001 R9 = 000000411e3f4250
R10 = 00007ff9d18c2554 R11 = 0000000000000000
R12 = 0000000000000000 R13 = 000000411e3f4b48
R14 = 000000411e3f5860 R15 = 000000411e3f59c8
RIP = 00007ff9cf27b699 EFL = 00000206
CS = 0033 FS = 0053 GS = 002b
Stack Trace (from fault):
[ 0] 0x00007ff9cf27b699 C:WindowsSystem32KERNELBASE.dll+00243353 RaiseException+00000105
[ 1] 0x00007ff9ba0c2743 C:WindowsSYSTEM32VCRUNTIME140_1_CLR0400.dll+00010051 _NLG_Return2+00005619
[ 2] 0x00007ff9d1911c96 C:WindowsSYSTEM32ntdll.dll+00662678 RtlCaptureContext2+00001190
[ 3] 0x00007ff9ba16e012 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00319506 StrongNameTokenFromPublicKey+00192754
[ 4] 0x00007ff9ba185e56 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00417366 StrongNameTokenFromPublicKey+00290614
[ 5] 0x00007ff9ba15891b C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+00231707 StrongNameTokenFromPublicKey+00104955
[ 6] 0x00007ff9ba2ae7b5 C:WindowsMicrosoft.NETFramework64v4.0.30319clr.dll+01632181 DllCanUnloadNowInternal+00011525
[ 7] 0x00007ff95abb1ce7 <unknown-module>+00000000
[ 8] 0x00007ff955214238 C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016952 mexFunction+00012856
[ 9] 0x00007ff95521422c C:Program Files (x86)WoodwardMCSMotoHawk2023a_sp3.3213BlocksMainmotohawk_sfun_check_license.mexw64+00016940 mexFunction+00012844
[ 10] 0x0000000000000001 <unknown-module>+00000000
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files. motohawk 2023a matlabr2023a MATLAB Answers — New Questions
Parse csv with complex numbers written by Python numpy
I am not actually sure which Python features use this format (I think both numpy and pandas use it), or perhaps this is a part of a larger standard, but basically I have csvs with text that looks like
(-0.0053973628685668375-0.004476730131734169j),(0.005108157082444198-0.005597795916657765j),,,,,,,-298.0,-298.0,37293,-0.7617709422297042,0.7202575393833991,(0.001506298444580933-0.0035885955125266656j)
and I want to parse into a numeric array.
The real-valued scalar entries are easy (well I can do a str2double and it’s not super fast but it’s acceptable). The blanks are also not too bad because after a simple textscan with a comma delimeter I can find emptys and set to a desired value. But what the heck do I do with these rediculous complex number strings?
There’s loopy solutions with regexp or finding the real and imag components but they are too slow when dealing with hundreds of thousands of entries. I could also do things like find entries containing a "j" and process them separately, but is there something better?I am not actually sure which Python features use this format (I think both numpy and pandas use it), or perhaps this is a part of a larger standard, but basically I have csvs with text that looks like
(-0.0053973628685668375-0.004476730131734169j),(0.005108157082444198-0.005597795916657765j),,,,,,,-298.0,-298.0,37293,-0.7617709422297042,0.7202575393833991,(0.001506298444580933-0.0035885955125266656j)
and I want to parse into a numeric array.
The real-valued scalar entries are easy (well I can do a str2double and it’s not super fast but it’s acceptable). The blanks are also not too bad because after a simple textscan with a comma delimeter I can find emptys and set to a desired value. But what the heck do I do with these rediculous complex number strings?
There’s loopy solutions with regexp or finding the real and imag components but they are too slow when dealing with hundreds of thousands of entries. I could also do things like find entries containing a "j" and process them separately, but is there something better? I am not actually sure which Python features use this format (I think both numpy and pandas use it), or perhaps this is a part of a larger standard, but basically I have csvs with text that looks like
(-0.0053973628685668375-0.004476730131734169j),(0.005108157082444198-0.005597795916657765j),,,,,,,-298.0,-298.0,37293,-0.7617709422297042,0.7202575393833991,(0.001506298444580933-0.0035885955125266656j)
and I want to parse into a numeric array.
The real-valued scalar entries are easy (well I can do a str2double and it’s not super fast but it’s acceptable). The blanks are also not too bad because after a simple textscan with a comma delimeter I can find emptys and set to a desired value. But what the heck do I do with these rediculous complex number strings?
There’s loopy solutions with regexp or finding the real and imag components but they are too slow when dealing with hundreds of thousands of entries. I could also do things like find entries containing a "j" and process them separately, but is there something better? csv, numpy, pandas, parsing MATLAB Answers — New Questions
how to calculate hourly averages?
I convertued my file to a csv, then used the following code to try and get hourly averages:
writematrix(NTU,’M.csv’);
T1 = readtable(‘M.csv’);
TT1 = table2timetable(T1,’RowTimes’,NTU);
TT1 = retime(TT1, ‘hourly’,’mean’);
Am I using table2timetable wrong?I convertued my file to a csv, then used the following code to try and get hourly averages:
writematrix(NTU,’M.csv’);
T1 = readtable(‘M.csv’);
TT1 = table2timetable(T1,’RowTimes’,NTU);
TT1 = retime(TT1, ‘hourly’,’mean’);
Am I using table2timetable wrong? I convertued my file to a csv, then used the following code to try and get hourly averages:
writematrix(NTU,’M.csv’);
T1 = readtable(‘M.csv’);
TT1 = table2timetable(T1,’RowTimes’,NTU);
TT1 = retime(TT1, ‘hourly’,’mean’);
Am I using table2timetable wrong? hourly, averages MATLAB Answers — New Questions
Unwrap with tolerance other than default (=pi)
I encountered a problem with the Matlab function “unwrap” when I tried to unwrap the phase of a signal with a jump tolerance other than pi.
I used the following phase for testing the behavior of the “unwrap” function:
phs = [0.1, 0.2, 0.3, 0.4, 0.4+pi-0.1, 0.4+pi-0.05, 0.4+pi-0.01];
There is a jump in the phase angle between elements four and five that is smaller than pi.
I then tried to eliminate this jump using the “unwrap” function and the tolerance pi/2:
phs = unwrap(phs, pi/2);
The phs vector didn’t change. It also didn’t change by using any other value for the tolerance.
Shouldn’t it eliminate the jump by adding +/- 2pi or by adding +/- pi/2?I encountered a problem with the Matlab function “unwrap” when I tried to unwrap the phase of a signal with a jump tolerance other than pi.
I used the following phase for testing the behavior of the “unwrap” function:
phs = [0.1, 0.2, 0.3, 0.4, 0.4+pi-0.1, 0.4+pi-0.05, 0.4+pi-0.01];
There is a jump in the phase angle between elements four and five that is smaller than pi.
I then tried to eliminate this jump using the “unwrap” function and the tolerance pi/2:
phs = unwrap(phs, pi/2);
The phs vector didn’t change. It also didn’t change by using any other value for the tolerance.
Shouldn’t it eliminate the jump by adding +/- 2pi or by adding +/- pi/2? I encountered a problem with the Matlab function “unwrap” when I tried to unwrap the phase of a signal with a jump tolerance other than pi.
I used the following phase for testing the behavior of the “unwrap” function:
phs = [0.1, 0.2, 0.3, 0.4, 0.4+pi-0.1, 0.4+pi-0.05, 0.4+pi-0.01];
There is a jump in the phase angle between elements four and five that is smaller than pi.
I then tried to eliminate this jump using the “unwrap” function and the tolerance pi/2:
phs = unwrap(phs, pi/2);
The phs vector didn’t change. It also didn’t change by using any other value for the tolerance.
Shouldn’t it eliminate the jump by adding +/- 2pi or by adding +/- pi/2? unwrap, tolerance, tol, jump, fish MATLAB Answers — New Questions
eliminate phase jumps in unwrapping
Hi everyone. I’m unwrapping the phase of a hemisphere image, using MATLAB unwrap function. the image contains vertical lines. the function ‘unwrap’ works well for a constant surface but it doesn’t for the hemisphere. there are some jumps in the unwrapped image.
I use the function in the form of:
UnwrappedImage7=unwrap(unwrap(PHI,[],2),[],1);
Do you have any sugestions to eliminate the jumps?Hi everyone. I’m unwrapping the phase of a hemisphere image, using MATLAB unwrap function. the image contains vertical lines. the function ‘unwrap’ works well for a constant surface but it doesn’t for the hemisphere. there are some jumps in the unwrapped image.
I use the function in the form of:
UnwrappedImage7=unwrap(unwrap(PHI,[],2),[],1);
Do you have any sugestions to eliminate the jumps? Hi everyone. I’m unwrapping the phase of a hemisphere image, using MATLAB unwrap function. the image contains vertical lines. the function ‘unwrap’ works well for a constant surface but it doesn’t for the hemisphere. there are some jumps in the unwrapped image.
I use the function in the form of:
UnwrappedImage7=unwrap(unwrap(PHI,[],2),[],1);
Do you have any sugestions to eliminate the jumps? unwrap, phase jump, image processing, image MATLAB Answers — New Questions
how to align two columns with different times
Hi, I have to align two timestamps, but I need help!
Input data: ML
the first two columns refer to the events codes (column 1) and the corresponding timestamps (column 2, in millieconds) from a time 0, of when each events occurs
ML (:,1)) = (events codes)
9 62 15 40 54 50 18 9 63 15 40 54 50 18 9 64 15 40 54 50 18 9 65 15 40 54 50 18 9 66 15 40 18 9 67 15 40 54 50 18 9 68 15 40 54 50 18 9 69 15 40 54 50 18 9 70 15 40 54 50 18 9 71 15 40 54 50 18 9 72 15 40 54 50 18 9 73 15 40 54 50 18 9 74 15 40 54 50 18 9 75 15 40 54 50 18 9 76 15 40 54 50 18 9 77 15 40 54 50 18 9 78 15 40 54 50 18 9 79 15 40 54 50 18 9 80 15 40 54 50 18 9 81 15 40 54 50 18 ;
ML(:,2) = ( timestamp 1, milliseconds of the times of each code from 0)
4974 4980 5112 5579 5968 6042 6374 6877 6882 6912 7545 8066 8133 8419 8921 8925 9012 9612 10115 10247 10533 11036 11040 11112 11679 12082 12102 12393 12896 12899 12979 13445 16592 17095 17098 17179 17545 17917 18000 18307 18809 18813 18913 19645 20148 20163 20462 20964 20968 21079 21612 21999 22065 22422 22926 22930 23112 23613 24010 24081 24384 24888 24893 24912 25379 25946 26006 26420 26922 26925 27112 27612 27991 28075 28368 28870 28873 28979 29546 30045 30061 30374 30875 30878 30946 31512 32029 32090 32349 32851 32854 33046 33712 34107 34164 34487 34988 34991 35046 35579 36093 36165 36460 36962 36965 37046 37446 37843 37919 38211 38712 38715 38780 39279 39655 39672 39975 40477 40479 40580 41146 41691 41753 42002 42504 42507 42613 43146 43657 43728 44019 44520 44523 44579 45180 45576 45641 45936
The third column is a separate time stamp (timestamp 2) , wtih the time when the codes40 occur from a time 0, relative to THAT timestamp (not to the timestamp 1) . The absolute values are different. In this timestamp, there are only the value of the code 40. The zeroes values correspond to a NaN.
ML(:,3)
0 0 0 1989 0 0 0 0 0 0 3464 0 0 0 0 0 0 5014 0 0 0 0 0 0 6564 0 0 0 0 0 0 7889 0 0 0 0 10964 0 0 0 0 0 0 12539 0 0 0 0 0 0 14014 0 0 0 0 0 0 15514 0 0 0 0 0 0 16839 0 0 0 0 0 0 18514 0 0 0 0 0 0 19964 0 0 0 0 0 0 21439 0 0 0 0 0 0 23089 0 0 0 0 0 0 24489 0 0 0 0 0 0 25889 0 0 0 0 0 0 27265 0 0 0 0 0 0 28665 0 0 0 0 0 0 30165 0 0 0 0 0 0 31690 0 0 0
even thought the absolute values of the two timestamps are different, nonetheless, the difference between two consecutive times of codes 40 in the column 2, should be the same as the difference bettween the consecutive times of code s 40 in colum 3. If this is the case, I can fill the zeroes value of the column 3, and obtain a complete timestamp of column 3 (timestamp 2) which correspond to the event codes:
%% select only the values which correspond to the code 40
gt = find(ML(:,1) == 40;
new_ML = ML(gt,:);
%% differences between times of consecutive codes 40:
timestamp1_diff = new_ML(2:end-1,2) – new_ML(1:end-1,2)
timestamp2_diff = new_ML(2:end-1,3) – new_ML(1:end-1,3)
However, the values of timestamp1_diff and timestamp2_diff are not the same. The values of the timestamp1_diff are alwasy between 400 and 550 bigger than the timestamp2_diff That means, that the values of the column 3 do not correspond to the code 40. I have to find to which code the values of the timestamp2 (ML:,3) correspond.
I tried, but I gave up!
any idea??
thanks
AnnaHi, I have to align two timestamps, but I need help!
Input data: ML
the first two columns refer to the events codes (column 1) and the corresponding timestamps (column 2, in millieconds) from a time 0, of when each events occurs
ML (:,1)) = (events codes)
9 62 15 40 54 50 18 9 63 15 40 54 50 18 9 64 15 40 54 50 18 9 65 15 40 54 50 18 9 66 15 40 18 9 67 15 40 54 50 18 9 68 15 40 54 50 18 9 69 15 40 54 50 18 9 70 15 40 54 50 18 9 71 15 40 54 50 18 9 72 15 40 54 50 18 9 73 15 40 54 50 18 9 74 15 40 54 50 18 9 75 15 40 54 50 18 9 76 15 40 54 50 18 9 77 15 40 54 50 18 9 78 15 40 54 50 18 9 79 15 40 54 50 18 9 80 15 40 54 50 18 9 81 15 40 54 50 18 ;
ML(:,2) = ( timestamp 1, milliseconds of the times of each code from 0)
4974 4980 5112 5579 5968 6042 6374 6877 6882 6912 7545 8066 8133 8419 8921 8925 9012 9612 10115 10247 10533 11036 11040 11112 11679 12082 12102 12393 12896 12899 12979 13445 16592 17095 17098 17179 17545 17917 18000 18307 18809 18813 18913 19645 20148 20163 20462 20964 20968 21079 21612 21999 22065 22422 22926 22930 23112 23613 24010 24081 24384 24888 24893 24912 25379 25946 26006 26420 26922 26925 27112 27612 27991 28075 28368 28870 28873 28979 29546 30045 30061 30374 30875 30878 30946 31512 32029 32090 32349 32851 32854 33046 33712 34107 34164 34487 34988 34991 35046 35579 36093 36165 36460 36962 36965 37046 37446 37843 37919 38211 38712 38715 38780 39279 39655 39672 39975 40477 40479 40580 41146 41691 41753 42002 42504 42507 42613 43146 43657 43728 44019 44520 44523 44579 45180 45576 45641 45936
The third column is a separate time stamp (timestamp 2) , wtih the time when the codes40 occur from a time 0, relative to THAT timestamp (not to the timestamp 1) . The absolute values are different. In this timestamp, there are only the value of the code 40. The zeroes values correspond to a NaN.
ML(:,3)
0 0 0 1989 0 0 0 0 0 0 3464 0 0 0 0 0 0 5014 0 0 0 0 0 0 6564 0 0 0 0 0 0 7889 0 0 0 0 10964 0 0 0 0 0 0 12539 0 0 0 0 0 0 14014 0 0 0 0 0 0 15514 0 0 0 0 0 0 16839 0 0 0 0 0 0 18514 0 0 0 0 0 0 19964 0 0 0 0 0 0 21439 0 0 0 0 0 0 23089 0 0 0 0 0 0 24489 0 0 0 0 0 0 25889 0 0 0 0 0 0 27265 0 0 0 0 0 0 28665 0 0 0 0 0 0 30165 0 0 0 0 0 0 31690 0 0 0
even thought the absolute values of the two timestamps are different, nonetheless, the difference between two consecutive times of codes 40 in the column 2, should be the same as the difference bettween the consecutive times of code s 40 in colum 3. If this is the case, I can fill the zeroes value of the column 3, and obtain a complete timestamp of column 3 (timestamp 2) which correspond to the event codes:
%% select only the values which correspond to the code 40
gt = find(ML(:,1) == 40;
new_ML = ML(gt,:);
%% differences between times of consecutive codes 40:
timestamp1_diff = new_ML(2:end-1,2) – new_ML(1:end-1,2)
timestamp2_diff = new_ML(2:end-1,3) – new_ML(1:end-1,3)
However, the values of timestamp1_diff and timestamp2_diff are not the same. The values of the timestamp1_diff are alwasy between 400 and 550 bigger than the timestamp2_diff That means, that the values of the column 3 do not correspond to the code 40. I have to find to which code the values of the timestamp2 (ML:,3) correspond.
I tried, but I gave up!
any idea??
thanks
Anna Hi, I have to align two timestamps, but I need help!
Input data: ML
the first two columns refer to the events codes (column 1) and the corresponding timestamps (column 2, in millieconds) from a time 0, of when each events occurs
ML (:,1)) = (events codes)
9 62 15 40 54 50 18 9 63 15 40 54 50 18 9 64 15 40 54 50 18 9 65 15 40 54 50 18 9 66 15 40 18 9 67 15 40 54 50 18 9 68 15 40 54 50 18 9 69 15 40 54 50 18 9 70 15 40 54 50 18 9 71 15 40 54 50 18 9 72 15 40 54 50 18 9 73 15 40 54 50 18 9 74 15 40 54 50 18 9 75 15 40 54 50 18 9 76 15 40 54 50 18 9 77 15 40 54 50 18 9 78 15 40 54 50 18 9 79 15 40 54 50 18 9 80 15 40 54 50 18 9 81 15 40 54 50 18 ;
ML(:,2) = ( timestamp 1, milliseconds of the times of each code from 0)
4974 4980 5112 5579 5968 6042 6374 6877 6882 6912 7545 8066 8133 8419 8921 8925 9012 9612 10115 10247 10533 11036 11040 11112 11679 12082 12102 12393 12896 12899 12979 13445 16592 17095 17098 17179 17545 17917 18000 18307 18809 18813 18913 19645 20148 20163 20462 20964 20968 21079 21612 21999 22065 22422 22926 22930 23112 23613 24010 24081 24384 24888 24893 24912 25379 25946 26006 26420 26922 26925 27112 27612 27991 28075 28368 28870 28873 28979 29546 30045 30061 30374 30875 30878 30946 31512 32029 32090 32349 32851 32854 33046 33712 34107 34164 34487 34988 34991 35046 35579 36093 36165 36460 36962 36965 37046 37446 37843 37919 38211 38712 38715 38780 39279 39655 39672 39975 40477 40479 40580 41146 41691 41753 42002 42504 42507 42613 43146 43657 43728 44019 44520 44523 44579 45180 45576 45641 45936
The third column is a separate time stamp (timestamp 2) , wtih the time when the codes40 occur from a time 0, relative to THAT timestamp (not to the timestamp 1) . The absolute values are different. In this timestamp, there are only the value of the code 40. The zeroes values correspond to a NaN.
ML(:,3)
0 0 0 1989 0 0 0 0 0 0 3464 0 0 0 0 0 0 5014 0 0 0 0 0 0 6564 0 0 0 0 0 0 7889 0 0 0 0 10964 0 0 0 0 0 0 12539 0 0 0 0 0 0 14014 0 0 0 0 0 0 15514 0 0 0 0 0 0 16839 0 0 0 0 0 0 18514 0 0 0 0 0 0 19964 0 0 0 0 0 0 21439 0 0 0 0 0 0 23089 0 0 0 0 0 0 24489 0 0 0 0 0 0 25889 0 0 0 0 0 0 27265 0 0 0 0 0 0 28665 0 0 0 0 0 0 30165 0 0 0 0 0 0 31690 0 0 0
even thought the absolute values of the two timestamps are different, nonetheless, the difference between two consecutive times of codes 40 in the column 2, should be the same as the difference bettween the consecutive times of code s 40 in colum 3. If this is the case, I can fill the zeroes value of the column 3, and obtain a complete timestamp of column 3 (timestamp 2) which correspond to the event codes:
%% select only the values which correspond to the code 40
gt = find(ML(:,1) == 40;
new_ML = ML(gt,:);
%% differences between times of consecutive codes 40:
timestamp1_diff = new_ML(2:end-1,2) – new_ML(1:end-1,2)
timestamp2_diff = new_ML(2:end-1,3) – new_ML(1:end-1,3)
However, the values of timestamp1_diff and timestamp2_diff are not the same. The values of the timestamp1_diff are alwasy between 400 and 550 bigger than the timestamp2_diff That means, that the values of the column 3 do not correspond to the code 40. I have to find to which code the values of the timestamp2 (ML:,3) correspond.
I tried, but I gave up!
any idea??
thanks
Anna align timestamps MATLAB Answers — New Questions