Tag Archives: matlab
Panel VAR in BEAR app
I am running the panel VAR scenario in the BEAR app by ECB – Dynamic Structure Factor. However, even with the default data set for three units – US EA UK – the program stops working and says : "Something went wrong. Not enough input arguments".
What might be the reason behind? I need no structural identification, just a pure reduced-form estimates.I am running the panel VAR scenario in the BEAR app by ECB – Dynamic Structure Factor. However, even with the default data set for three units – US EA UK – the program stops working and says : "Something went wrong. Not enough input arguments".
What might be the reason behind? I need no structural identification, just a pure reduced-form estimates. I am running the panel VAR scenario in the BEAR app by ECB – Dynamic Structure Factor. However, even with the default data set for three units – US EA UK – the program stops working and says : "Something went wrong. Not enough input arguments".
What might be the reason behind? I need no structural identification, just a pure reduced-form estimates. bear app, panel var MATLAB Answers — New Questions
How do I copy a file to a clipboard using MATLAB?
How do I copy a file to a clipboard using MATLAB, just like using the shortcut Ctrl+C in a Windows system. Thanks!How do I copy a file to a clipboard using MATLAB, just like using the shortcut Ctrl+C in a Windows system. Thanks! How do I copy a file to a clipboard using MATLAB, just like using the shortcut Ctrl+C in a Windows system. Thanks! clipboard, windows MATLAB Answers — New Questions
How to make the encircled curve by blue.
How to make the encircled curve by blue.
clear all
format long
set(0,’DefaultAxesFontSize’,20);
figure;
load(‘H_LC(2).mat’);
dim=2; %number of variables of my system which are x and y
MMM=max(x(1:dim:end-2,:));
plot(x(end,:),MMM,’r’, ‘LineWidth’,2); % RED
hold on
load(‘H_LC(2).mat’);
M=min(x(1:dim:end-2,:)); % end-2 excludes the parameter and the period from the continuation variable x
plot(x(end,:),M,’r’, ‘LineWidth’,2);
hold on
xlabel(‘$aa$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
ylabel(‘$bb$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
hold on
axis([.1142595 .1142604 .5295 .5297]);How to make the encircled curve by blue.
clear all
format long
set(0,’DefaultAxesFontSize’,20);
figure;
load(‘H_LC(2).mat’);
dim=2; %number of variables of my system which are x and y
MMM=max(x(1:dim:end-2,:));
plot(x(end,:),MMM,’r’, ‘LineWidth’,2); % RED
hold on
load(‘H_LC(2).mat’);
M=min(x(1:dim:end-2,:)); % end-2 excludes the parameter and the period from the continuation variable x
plot(x(end,:),M,’r’, ‘LineWidth’,2);
hold on
xlabel(‘$aa$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
ylabel(‘$bb$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
hold on
axis([.1142595 .1142604 .5295 .5297]); How to make the encircled curve by blue.
clear all
format long
set(0,’DefaultAxesFontSize’,20);
figure;
load(‘H_LC(2).mat’);
dim=2; %number of variables of my system which are x and y
MMM=max(x(1:dim:end-2,:));
plot(x(end,:),MMM,’r’, ‘LineWidth’,2); % RED
hold on
load(‘H_LC(2).mat’);
M=min(x(1:dim:end-2,:)); % end-2 excludes the parameter and the period from the continuation variable x
plot(x(end,:),M,’r’, ‘LineWidth’,2);
hold on
xlabel(‘$aa$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
ylabel(‘$bb$’,’FontSize’,20,’interpreter’,’latex’,’FontWeight’,’normal’,’Color’,’k’);
hold on
axis([.1142595 .1142604 .5295 .5297]); plot MATLAB Answers — New Questions
Six phase PMSM FEM pamarametrized model block
Hello, I would like to know if it is possible to use the simscape electrical ‘FEM-Parameterized PMSM’ block to model a six phase PMSM using flux data and loss map. In particular, I saw that it is possible to set ‘winding type -> open end’ to obtain 6 electrical ports to the block. Do these ports actually represent the 6 distinct phases? If so, how should I handle the neutral points?
Here is a picture of the block in questionHello, I would like to know if it is possible to use the simscape electrical ‘FEM-Parameterized PMSM’ block to model a six phase PMSM using flux data and loss map. In particular, I saw that it is possible to set ‘winding type -> open end’ to obtain 6 electrical ports to the block. Do these ports actually represent the 6 distinct phases? If so, how should I handle the neutral points?
Here is a picture of the block in question Hello, I would like to know if it is possible to use the simscape electrical ‘FEM-Parameterized PMSM’ block to model a six phase PMSM using flux data and loss map. In particular, I saw that it is possible to set ‘winding type -> open end’ to obtain 6 electrical ports to the block. Do these ports actually represent the 6 distinct phases? If so, how should I handle the neutral points?
Here is a picture of the block in question motor, permanent_motor, six_phase, fem_parametrized MATLAB Answers — New Questions
How can I simulate Pulse Radar and Antenna Design in Matlab?
Model the jamming system of the EH Self Protection System in a fighter aircraft with an RCS of 10 m2 and 4 different pulsed threat radars with operating frequencies varying in the range of 8-12 GHz. Design the antenna for the mixer separately in the MATLAB application and use the pattern of this antenna in the simulation. Detection of J/S and fighter for 2 different strengths of interference made by EH Self Protection System for each radar. Perform a MATLAB simulation where the burn-through distance is calculated.Model the jamming system of the EH Self Protection System in a fighter aircraft with an RCS of 10 m2 and 4 different pulsed threat radars with operating frequencies varying in the range of 8-12 GHz. Design the antenna for the mixer separately in the MATLAB application and use the pattern of this antenna in the simulation. Detection of J/S and fighter for 2 different strengths of interference made by EH Self Protection System for each radar. Perform a MATLAB simulation where the burn-through distance is calculated. Model the jamming system of the EH Self Protection System in a fighter aircraft with an RCS of 10 m2 and 4 different pulsed threat radars with operating frequencies varying in the range of 8-12 GHz. Design the antenna for the mixer separately in the MATLAB application and use the pattern of this antenna in the simulation. Detection of J/S and fighter for 2 different strengths of interference made by EH Self Protection System for each radar. Perform a MATLAB simulation where the burn-through distance is calculated. radar, antenna design, pulsed threat radar, rcs MATLAB Answers — New Questions
Not receiving correct FSK modulated signal [N210 USRP]
I have set up two N210 USRPs to transmit/receive simple FSK modulated signals. My code is very similar to the examples in the documentation (https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrutransmitter-system-object.html and https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrureceiver-system-object.html) but for the different modulation approach. The two USRPs are connected to two separate computers. One runs a script to repeatedly transmit my signal while the other runs a script to repeatedly scan for a received signal, which it then demodulates and returns to the user. Unfortunately, the received and demodulated signal does not resemble the transmitted signal at all.
I have experimented with different antennas, different gains and different centre frequencies.
What could possibly be causing this?
Transmitter code:
% Message
barkerCode = [1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0]’;
message = ones(20, 1);
frame = [barkerCode; message];
% Modulation
H = comm.FSKModulator(‘ModulationOrder’, 2);
messageIQ = H(frame);
% Transmitter
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuTransmitter(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Transmit
fprintf(‘Transmitting now…n’)
stop = 1000;
i = 0;
while i < stop
underrun = radio(messageIQ);
if (underrun ~= 0)
fprintf(‘Iteration: %i, underrun: %in’, i, underrun);
end
i = i + 1;
end
fprintf(‘Donen’)
release(radio)
Receiver code:
% Radio
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuReceiver(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Demodulator
D = comm.FSKDemodulator(‘ModulationOrder’, 2);
% Receive signal
len = 0;
while len == 0
[rcvdSignal, len] = step(radio);
demodSignal = D(rcvdSignal);
end
plot(debudSignal);I have set up two N210 USRPs to transmit/receive simple FSK modulated signals. My code is very similar to the examples in the documentation (https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrutransmitter-system-object.html and https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrureceiver-system-object.html) but for the different modulation approach. The two USRPs are connected to two separate computers. One runs a script to repeatedly transmit my signal while the other runs a script to repeatedly scan for a received signal, which it then demodulates and returns to the user. Unfortunately, the received and demodulated signal does not resemble the transmitted signal at all.
I have experimented with different antennas, different gains and different centre frequencies.
What could possibly be causing this?
Transmitter code:
% Message
barkerCode = [1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0]’;
message = ones(20, 1);
frame = [barkerCode; message];
% Modulation
H = comm.FSKModulator(‘ModulationOrder’, 2);
messageIQ = H(frame);
% Transmitter
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuTransmitter(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Transmit
fprintf(‘Transmitting now…n’)
stop = 1000;
i = 0;
while i < stop
underrun = radio(messageIQ);
if (underrun ~= 0)
fprintf(‘Iteration: %i, underrun: %in’, i, underrun);
end
i = i + 1;
end
fprintf(‘Donen’)
release(radio)
Receiver code:
% Radio
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuReceiver(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Demodulator
D = comm.FSKDemodulator(‘ModulationOrder’, 2);
% Receive signal
len = 0;
while len == 0
[rcvdSignal, len] = step(radio);
demodSignal = D(rcvdSignal);
end
plot(debudSignal); I have set up two N210 USRPs to transmit/receive simple FSK modulated signals. My code is very similar to the examples in the documentation (https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrutransmitter-system-object.html and https://se.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrureceiver-system-object.html) but for the different modulation approach. The two USRPs are connected to two separate computers. One runs a script to repeatedly transmit my signal while the other runs a script to repeatedly scan for a received signal, which it then demodulates and returns to the user. Unfortunately, the received and demodulated signal does not resemble the transmitted signal at all.
I have experimented with different antennas, different gains and different centre frequencies.
What could possibly be causing this?
Transmitter code:
% Message
barkerCode = [1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0]’;
message = ones(20, 1);
frame = [barkerCode; message];
% Modulation
H = comm.FSKModulator(‘ModulationOrder’, 2);
messageIQ = H(frame);
% Transmitter
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuTransmitter(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Transmit
fprintf(‘Transmitting now…n’)
stop = 1000;
i = 0;
while i < stop
underrun = radio(messageIQ);
if (underrun ~= 0)
fprintf(‘Iteration: %i, underrun: %in’, i, underrun);
end
i = i + 1;
end
fprintf(‘Donen’)
release(radio)
Receiver code:
% Radio
center_frequency = 434e6;
gain = 30;
radio = comm.SDRuReceiver(…
‘Platform’, ‘N200/N210/USRP2’, …
‘IPAddress’, ‘192.168.10.2’, …
‘CenterFrequency’, center_frequency, …
‘Gain’, gain);
% Demodulator
D = comm.FSKDemodulator(‘ModulationOrder’, 2);
% Receive signal
len = 0;
while len == 0
[rcvdSignal, len] = step(radio);
demodSignal = D(rcvdSignal);
end
plot(debudSignal); usrp, communications toolbox support package, n210 MATLAB Answers — New Questions
contour plots on a given geometry – finite element
I have some values of stretch that I need to assign to a given set of elements and then I want to show a contour plot of those values on the geometry that I get by plotting the elements through the nodes. How can I do?I have some values of stretch that I need to assign to a given set of elements and then I want to show a contour plot of those values on the geometry that I get by plotting the elements through the nodes. How can I do? I have some values of stretch that I need to assign to a given set of elements and then I want to show a contour plot of those values on the geometry that I get by plotting the elements through the nodes. How can I do? contour plot, plotting, finite element, stretch MATLAB Answers — New Questions
How to solve a system of nonlinear differential equation that follows some pattern
I have a system of nonlinear differential equation that follows some patter, for example . I could solve for some small . I want to solve it for . Is there any way to do that or we can tonly type manually. Is it possible to use loops in function environment to solve such cases? Thank you!I have a system of nonlinear differential equation that follows some patter, for example . I could solve for some small . I want to solve it for . Is there any way to do that or we can tonly type manually. Is it possible to use loops in function environment to solve such cases? Thank you! I have a system of nonlinear differential equation that follows some patter, for example . I could solve for some small . I want to solve it for . Is there any way to do that or we can tonly type manually. Is it possible to use loops in function environment to solve such cases? Thank you! differential equations MATLAB Answers — New Questions
Stackedplot error when changing position and plotting again
Hello together,
I get an error with stackedplot, when changing position (which works always the first time) and plotting then again, adding new variables. Without the position change, there is no error and I can plot on.
That’s the code I use. Without the "Position" line it works fine all the time. With the position change I get an error (below code).
app.Logs(app.Log).Stack{1} = stackedplot(app.Logs(app.Log).Table, app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
for e=1:+1:height(app.Logs(app.Log).Stack{1}.DisplayLabels)
emptyLabels(e,1) = ""; % Create empty string for label
end
if app.Logs(app.Log).Plots > 0
app.Logs(app.Log).Stack{1}.DisplayLabels = emptyLabels; % "Delete labels"
app.Logs(app.Log).Stack{1}.Position = [0.05,0.05,0.90,0.90]; % Get rid of the broad margin
end
Thats the error:
Error using stackedplot (line 100)
Brace indexing is not supported for variables of this type.
Error in LogReader/DataButtonPress (line 141)
app.Logs(app.Log).Stack{1} =
stackedplot(app.Logs(app.Log).Table,
app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
Error in LogReader>@(varargin)app.DataButtonPress(varargin{:}) (line 336)
app.Logs(app.Log).Variables{2, i}.ValueChangedFcn =
@app.DataButtonPress; %Callback function
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 429)
Error while evaluating StateButton PrivateValueChangedFcn.
What am I not understanding? ^^
Thanks in advance!
ChristofHello together,
I get an error with stackedplot, when changing position (which works always the first time) and plotting then again, adding new variables. Without the position change, there is no error and I can plot on.
That’s the code I use. Without the "Position" line it works fine all the time. With the position change I get an error (below code).
app.Logs(app.Log).Stack{1} = stackedplot(app.Logs(app.Log).Table, app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
for e=1:+1:height(app.Logs(app.Log).Stack{1}.DisplayLabels)
emptyLabels(e,1) = ""; % Create empty string for label
end
if app.Logs(app.Log).Plots > 0
app.Logs(app.Log).Stack{1}.DisplayLabels = emptyLabels; % "Delete labels"
app.Logs(app.Log).Stack{1}.Position = [0.05,0.05,0.90,0.90]; % Get rid of the broad margin
end
Thats the error:
Error using stackedplot (line 100)
Brace indexing is not supported for variables of this type.
Error in LogReader/DataButtonPress (line 141)
app.Logs(app.Log).Stack{1} =
stackedplot(app.Logs(app.Log).Table,
app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
Error in LogReader>@(varargin)app.DataButtonPress(varargin{:}) (line 336)
app.Logs(app.Log).Variables{2, i}.ValueChangedFcn =
@app.DataButtonPress; %Callback function
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 429)
Error while evaluating StateButton PrivateValueChangedFcn.
What am I not understanding? ^^
Thanks in advance!
Christof Hello together,
I get an error with stackedplot, when changing position (which works always the first time) and plotting then again, adding new variables. Without the position change, there is no error and I can plot on.
That’s the code I use. Without the "Position" line it works fine all the time. With the position change I get an error (below code).
app.Logs(app.Log).Stack{1} = stackedplot(app.Logs(app.Log).Table, app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
for e=1:+1:height(app.Logs(app.Log).Stack{1}.DisplayLabels)
emptyLabels(e,1) = ""; % Create empty string for label
end
if app.Logs(app.Log).Plots > 0
app.Logs(app.Log).Stack{1}.DisplayLabels = emptyLabels; % "Delete labels"
app.Logs(app.Log).Stack{1}.Position = [0.05,0.05,0.90,0.90]; % Get rid of the broad margin
end
Thats the error:
Error using stackedplot (line 100)
Brace indexing is not supported for variables of this type.
Error in LogReader/DataButtonPress (line 141)
app.Logs(app.Log).Stack{1} =
stackedplot(app.Logs(app.Log).Table,
app.Logs(app.Log).ToPlot,’Parent’,app.StackedTab);
Error in LogReader>@(varargin)app.DataButtonPress(varargin{:}) (line 336)
app.Logs(app.Log).Variables{2, i}.ValueChangedFcn =
@app.DataButtonPress; %Callback function
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 429)
Error while evaluating StateButton PrivateValueChangedFcn.
What am I not understanding? ^^
Thanks in advance!
Christof stackedplot position MATLAB Answers — New Questions
Could not find a feasible initial point gamultiobj function
Hi, Hope members are good….I am getting the error "Could not find a feasible initial point.." despite changing lower and upper bounds…… request to help….. attached is the snapshot of obtained error ,,,,, plus matlab script is also in the attachment…… many thanks in advanceHi, Hope members are good….I am getting the error "Could not find a feasible initial point.." despite changing lower and upper bounds…… request to help….. attached is the snapshot of obtained error ,,,,, plus matlab script is also in the attachment…… many thanks in advance Hi, Hope members are good….I am getting the error "Could not find a feasible initial point.." despite changing lower and upper bounds…… request to help….. attached is the snapshot of obtained error ,,,,, plus matlab script is also in the attachment…… many thanks in advance genetic algorithm, constraints, feasible initial point MATLAB Answers — New Questions
Empty pdf if table is saved as pdf
I am trying save the table t1 by uisng the suggested table-to-figure mathod. However, the saved pdf remains empty.
t1=table(ones(5));
fig = uifigure(‘Name’,’Numbers’);
t = uitable(fig,’Data’,t1);
exportapp(fig,’Peak_assigments.pdf’)I am trying save the table t1 by uisng the suggested table-to-figure mathod. However, the saved pdf remains empty.
t1=table(ones(5));
fig = uifigure(‘Name’,’Numbers’);
t = uitable(fig,’Data’,t1);
exportapp(fig,’Peak_assigments.pdf’) I am trying save the table t1 by uisng the suggested table-to-figure mathod. However, the saved pdf remains empty.
t1=table(ones(5));
fig = uifigure(‘Name’,’Numbers’);
t = uitable(fig,’Data’,t1);
exportapp(fig,’Peak_assigments.pdf’) uitable, pdf, saveas, exportapp MATLAB Answers — New Questions
Genetic algorithm with solution of pde toolbox
Hi I’m on project that find optimal parameter about transient heat transfer problem. (find optimal values that minimize temperature fluctuation)
I have problem about exceed maximum array size (about 1800GB) while solving ga problem
I defined a design domain contains multiple values (i.e. length, geometry properties, etc) and FEA using pde toolbox has finished
the last task what i have to do is find optimal values with solution of FEA using ga function and my pseudo code about FEA is here:
function [result, model] = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time)
thermalmodel = createpde(‘thermal’, ‘transient’);
tlist = 0:1:time*60*60;
% Skip code about geometries, BC, IC
result = solve(thermalmodel, tlist);
model = thermalmodel;
end
L1, t1, t2, t3, length_fin is about geometry parameters that is noninteger values (because it is length)
num_fins, shelltype, shellmat, intermed is also about geometry parameters that is interger values (because it is about number or material type, i implemented that decide material type, geometry type by select number like if shellmat == 1, steel / elseif shellmat == 2, polymer)
and code about ga is as below:
function value = ObjectiveFcn(a, time)
L1 = a(1);
t1 = a(2);
t2 = a(3);
t3 = a(4);
length_fin = a(5);
num_fins = a(6);
shelltype = a(7);
shellmat = a(8);
intermed = a(9);
result = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time);
T = result.Temperature;
std_dev = std(T, 0, 1);
value = mean(std_dev);
end
function [c, ceq] = Constraints(b)
L1 = b(1);
t1 = b(2);
t2 = b(3);
t3 = b(4);
length_fin = b(5);
c1 = L1 + t1 + t2 + t3 – 0.3; % 0.3 is total length of control volume
c2 = length_fin – t1;
c3 = length_fin – t3;
c = [c1; c2; c3];
ceq = [];
end
% a = [L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed]
lb = [0, 0, 0, 0, 0, 1, 1, 1, 1];
ub = [0.3, 0.01, 0.02, 0.01, 0.01, 374, 2, 3, 2];
intvar = [6, 7, 8, 9];
ObjectivefunWithTime = @(a) Objectivefun(a, time);
ConstraintsFcn = @(b) Constraints(b);
options = optimoptions(‘ga’, ‘Display’, ‘iter’, ‘PopulationSize’, 10,…
‘MaxGenerations’, 20, ‘CrossoverFraction’, 0.8, ‘UseParallel’, true);
[x_opt, fval] = ga(ObjectivefunWithTime, 9, [], [], [], [], lb, ub, ConstraintsFcn, intvar, options);
time is not design variable so I excepted it from objective function
In ub (upper bound), I actually want to set value for t1, t2, t3, length_fin as 0.3 to find optimal value widely (under Constraints) but when i set values like that, it results error for invalid geometry (conflicted in pde toolbox code) so I defined arbiturary values.
What should I do for achieve my goal? (find optimal value)
I’m sorry for messy code
If anyone knows about this, please comment.
Thank youHi I’m on project that find optimal parameter about transient heat transfer problem. (find optimal values that minimize temperature fluctuation)
I have problem about exceed maximum array size (about 1800GB) while solving ga problem
I defined a design domain contains multiple values (i.e. length, geometry properties, etc) and FEA using pde toolbox has finished
the last task what i have to do is find optimal values with solution of FEA using ga function and my pseudo code about FEA is here:
function [result, model] = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time)
thermalmodel = createpde(‘thermal’, ‘transient’);
tlist = 0:1:time*60*60;
% Skip code about geometries, BC, IC
result = solve(thermalmodel, tlist);
model = thermalmodel;
end
L1, t1, t2, t3, length_fin is about geometry parameters that is noninteger values (because it is length)
num_fins, shelltype, shellmat, intermed is also about geometry parameters that is interger values (because it is about number or material type, i implemented that decide material type, geometry type by select number like if shellmat == 1, steel / elseif shellmat == 2, polymer)
and code about ga is as below:
function value = ObjectiveFcn(a, time)
L1 = a(1);
t1 = a(2);
t2 = a(3);
t3 = a(4);
length_fin = a(5);
num_fins = a(6);
shelltype = a(7);
shellmat = a(8);
intermed = a(9);
result = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time);
T = result.Temperature;
std_dev = std(T, 0, 1);
value = mean(std_dev);
end
function [c, ceq] = Constraints(b)
L1 = b(1);
t1 = b(2);
t2 = b(3);
t3 = b(4);
length_fin = b(5);
c1 = L1 + t1 + t2 + t3 – 0.3; % 0.3 is total length of control volume
c2 = length_fin – t1;
c3 = length_fin – t3;
c = [c1; c2; c3];
ceq = [];
end
% a = [L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed]
lb = [0, 0, 0, 0, 0, 1, 1, 1, 1];
ub = [0.3, 0.01, 0.02, 0.01, 0.01, 374, 2, 3, 2];
intvar = [6, 7, 8, 9];
ObjectivefunWithTime = @(a) Objectivefun(a, time);
ConstraintsFcn = @(b) Constraints(b);
options = optimoptions(‘ga’, ‘Display’, ‘iter’, ‘PopulationSize’, 10,…
‘MaxGenerations’, 20, ‘CrossoverFraction’, 0.8, ‘UseParallel’, true);
[x_opt, fval] = ga(ObjectivefunWithTime, 9, [], [], [], [], lb, ub, ConstraintsFcn, intvar, options);
time is not design variable so I excepted it from objective function
In ub (upper bound), I actually want to set value for t1, t2, t3, length_fin as 0.3 to find optimal value widely (under Constraints) but when i set values like that, it results error for invalid geometry (conflicted in pde toolbox code) so I defined arbiturary values.
What should I do for achieve my goal? (find optimal value)
I’m sorry for messy code
If anyone knows about this, please comment.
Thank you Hi I’m on project that find optimal parameter about transient heat transfer problem. (find optimal values that minimize temperature fluctuation)
I have problem about exceed maximum array size (about 1800GB) while solving ga problem
I defined a design domain contains multiple values (i.e. length, geometry properties, etc) and FEA using pde toolbox has finished
the last task what i have to do is find optimal values with solution of FEA using ga function and my pseudo code about FEA is here:
function [result, model] = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time)
thermalmodel = createpde(‘thermal’, ‘transient’);
tlist = 0:1:time*60*60;
% Skip code about geometries, BC, IC
result = solve(thermalmodel, tlist);
model = thermalmodel;
end
L1, t1, t2, t3, length_fin is about geometry parameters that is noninteger values (because it is length)
num_fins, shelltype, shellmat, intermed is also about geometry parameters that is interger values (because it is about number or material type, i implemented that decide material type, geometry type by select number like if shellmat == 1, steel / elseif shellmat == 2, polymer)
and code about ga is as below:
function value = ObjectiveFcn(a, time)
L1 = a(1);
t1 = a(2);
t2 = a(3);
t3 = a(4);
length_fin = a(5);
num_fins = a(6);
shelltype = a(7);
shellmat = a(8);
intermed = a(9);
result = Heattransfer(L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed, time);
T = result.Temperature;
std_dev = std(T, 0, 1);
value = mean(std_dev);
end
function [c, ceq] = Constraints(b)
L1 = b(1);
t1 = b(2);
t2 = b(3);
t3 = b(4);
length_fin = b(5);
c1 = L1 + t1 + t2 + t3 – 0.3; % 0.3 is total length of control volume
c2 = length_fin – t1;
c3 = length_fin – t3;
c = [c1; c2; c3];
ceq = [];
end
% a = [L1, t1, t2, t3, length_fin, num_fins, shelltype, shellmat, intermed]
lb = [0, 0, 0, 0, 0, 1, 1, 1, 1];
ub = [0.3, 0.01, 0.02, 0.01, 0.01, 374, 2, 3, 2];
intvar = [6, 7, 8, 9];
ObjectivefunWithTime = @(a) Objectivefun(a, time);
ConstraintsFcn = @(b) Constraints(b);
options = optimoptions(‘ga’, ‘Display’, ‘iter’, ‘PopulationSize’, 10,…
‘MaxGenerations’, 20, ‘CrossoverFraction’, 0.8, ‘UseParallel’, true);
[x_opt, fval] = ga(ObjectivefunWithTime, 9, [], [], [], [], lb, ub, ConstraintsFcn, intvar, options);
time is not design variable so I excepted it from objective function
In ub (upper bound), I actually want to set value for t1, t2, t3, length_fin as 0.3 to find optimal value widely (under Constraints) but when i set values like that, it results error for invalid geometry (conflicted in pde toolbox code) so I defined arbiturary values.
What should I do for achieve my goal? (find optimal value)
I’m sorry for messy code
If anyone knows about this, please comment.
Thank you genetic algorithm, pde toolbox, transient heat transfer, matlab, partial differential equation toolbox, global optimization toolbox MATLAB Answers — New Questions
How does im2int16 map double(0.5) to int16(0)?
I’ve known about this for a long time, and I’ve ignored it. It’s a curiosity I pick at every time I edit MIMT imcast(), but I’ve never really figured out a good explanation.
IPT im2int16() maps floating point values on the unit interval to values on the interval [-32768 32767]. That seems very simple. The problem is that obvious arithmetic doesn’t give the same result. What’s more curious is that it seems that the only input value that does not map identically is 1/2.
% our input
dx = 3E-5;
x = [0 linspace(0.5-dx,0.5+dx,7) 1].’; % ‘single’ or ‘double’ are the same
% convert it
y1 = im2int16(x); % the curiosity
y2 = int16(double(x)*65535 – 32768); % the obvious
y3 = int16(rescale(x,-32768,32767,’inputmin’,0,’inputmax’,1)); % a third opinion
% compare
[y1 y2 y3]
For what it’s worth, im2double() doesn’t map that 0 back to 1/2. It maps exactly like one would expect.
% map back to float
z1 = im2double(y1(2:8));
z2 = ((double(y2(2:8)) + 32768)/65535 );
% compare error
[z1 z2] – x(2:8)
So I suppose I have three sorts of questions.
How does this happen? I’m assuming this rises naturally from some simple conversion being used, but im2int16() isn’t working in mcode, and I’m not the clever one here.
Do you think this should be expected? Matter of differing conventions? Preference?
Does it really even matter? I’ve been assuming it doesn’t.I’ve known about this for a long time, and I’ve ignored it. It’s a curiosity I pick at every time I edit MIMT imcast(), but I’ve never really figured out a good explanation.
IPT im2int16() maps floating point values on the unit interval to values on the interval [-32768 32767]. That seems very simple. The problem is that obvious arithmetic doesn’t give the same result. What’s more curious is that it seems that the only input value that does not map identically is 1/2.
% our input
dx = 3E-5;
x = [0 linspace(0.5-dx,0.5+dx,7) 1].’; % ‘single’ or ‘double’ are the same
% convert it
y1 = im2int16(x); % the curiosity
y2 = int16(double(x)*65535 – 32768); % the obvious
y3 = int16(rescale(x,-32768,32767,’inputmin’,0,’inputmax’,1)); % a third opinion
% compare
[y1 y2 y3]
For what it’s worth, im2double() doesn’t map that 0 back to 1/2. It maps exactly like one would expect.
% map back to float
z1 = im2double(y1(2:8));
z2 = ((double(y2(2:8)) + 32768)/65535 );
% compare error
[z1 z2] – x(2:8)
So I suppose I have three sorts of questions.
How does this happen? I’m assuming this rises naturally from some simple conversion being used, but im2int16() isn’t working in mcode, and I’m not the clever one here.
Do you think this should be expected? Matter of differing conventions? Preference?
Does it really even matter? I’ve been assuming it doesn’t. I’ve known about this for a long time, and I’ve ignored it. It’s a curiosity I pick at every time I edit MIMT imcast(), but I’ve never really figured out a good explanation.
IPT im2int16() maps floating point values on the unit interval to values on the interval [-32768 32767]. That seems very simple. The problem is that obvious arithmetic doesn’t give the same result. What’s more curious is that it seems that the only input value that does not map identically is 1/2.
% our input
dx = 3E-5;
x = [0 linspace(0.5-dx,0.5+dx,7) 1].’; % ‘single’ or ‘double’ are the same
% convert it
y1 = im2int16(x); % the curiosity
y2 = int16(double(x)*65535 – 32768); % the obvious
y3 = int16(rescale(x,-32768,32767,’inputmin’,0,’inputmax’,1)); % a third opinion
% compare
[y1 y2 y3]
For what it’s worth, im2double() doesn’t map that 0 back to 1/2. It maps exactly like one would expect.
% map back to float
z1 = im2double(y1(2:8));
z2 = ((double(y2(2:8)) + 32768)/65535 );
% compare error
[z1 z2] – x(2:8)
So I suppose I have three sorts of questions.
How does this happen? I’m assuming this rises naturally from some simple conversion being used, but im2int16() isn’t working in mcode, and I’m not the clever one here.
Do you think this should be expected? Matter of differing conventions? Preference?
Does it really even matter? I’ve been assuming it doesn’t. im2int16 MATLAB Answers — New Questions
How to connect the Raspberry pi GPIO blocks to simulink model to perform real time simulation ?
Raspberry piRaspberry pi Raspberry pi gpio blocks MATLAB Answers — New Questions
I’m getting an error in port width and dimensions.
<</matlabcentral/answers/uploaded_files/1710701/PXL_20240607_114519832.MV.jpg>><</matlabcentral/answers/uploaded_files/1710701/PXL_20240607_114519832.MV.jpg>> <</matlabcentral/answers/uploaded_files/1710701/PXL_20240607_114519832.MV.jpg>> error in port width and dimensions or orientation. MATLAB Answers — New Questions
MQTT connection error on 2021b – Unable to resolve the name com.mathworks.mqttclient.client.Client.
I’m facing this error while trying to create an mqtt connection:
>> myMQTT=mqtt(‘tcp://broker.hivemq.com’)
‘com.mathworks’ package and subpackages will be removed in a future release. There is no simple replacement for this.
Caused by:
Unable to resolve the name com.mathworks.mqttclient.client.Client.
I just downloaded the mqtt package from file -exchange (mqtt-download).
I’m using matlab 2021b:
—————————————————————————————————–
MATLAB Version: 9.11.0.2358333 (R2021b) Update 7
MATLAB License Number:
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 19045)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 9.11 (R2021b)
Database Toolbox Version 10.2 (R2021b)
Deep Learning Toolbox Version 14.3 (R2021b)
Image Acquisition Toolbox Version 6.5 (R2021b)
Image Processing Toolbox Version 11.4 (R2021b)
MATLAB Compiler Version 8.3 (R2021b)
MATLAB Compiler SDK Version 6.11 (R2021b)
MATLAB Report Generator Version 5.11 (R2021b)
Spreadsheet Link Version 3.4.6 (R2021b)
Statistics and Machine Learning Toolbox Version 12.2 (R2021b)I’m facing this error while trying to create an mqtt connection:
>> myMQTT=mqtt(‘tcp://broker.hivemq.com’)
‘com.mathworks’ package and subpackages will be removed in a future release. There is no simple replacement for this.
Caused by:
Unable to resolve the name com.mathworks.mqttclient.client.Client.
I just downloaded the mqtt package from file -exchange (mqtt-download).
I’m using matlab 2021b:
—————————————————————————————————–
MATLAB Version: 9.11.0.2358333 (R2021b) Update 7
MATLAB License Number:
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 19045)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 9.11 (R2021b)
Database Toolbox Version 10.2 (R2021b)
Deep Learning Toolbox Version 14.3 (R2021b)
Image Acquisition Toolbox Version 6.5 (R2021b)
Image Processing Toolbox Version 11.4 (R2021b)
MATLAB Compiler Version 8.3 (R2021b)
MATLAB Compiler SDK Version 6.11 (R2021b)
MATLAB Report Generator Version 5.11 (R2021b)
Spreadsheet Link Version 3.4.6 (R2021b)
Statistics and Machine Learning Toolbox Version 12.2 (R2021b) I’m facing this error while trying to create an mqtt connection:
>> myMQTT=mqtt(‘tcp://broker.hivemq.com’)
‘com.mathworks’ package and subpackages will be removed in a future release. There is no simple replacement for this.
Caused by:
Unable to resolve the name com.mathworks.mqttclient.client.Client.
I just downloaded the mqtt package from file -exchange (mqtt-download).
I’m using matlab 2021b:
—————————————————————————————————–
MATLAB Version: 9.11.0.2358333 (R2021b) Update 7
MATLAB License Number:
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 19045)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
—————————————————————————————————–
MATLAB Version 9.11 (R2021b)
Database Toolbox Version 10.2 (R2021b)
Deep Learning Toolbox Version 14.3 (R2021b)
Image Acquisition Toolbox Version 6.5 (R2021b)
Image Processing Toolbox Version 11.4 (R2021b)
MATLAB Compiler Version 8.3 (R2021b)
MATLAB Compiler SDK Version 6.11 (R2021b)
MATLAB Report Generator Version 5.11 (R2021b)
Spreadsheet Link Version 3.4.6 (R2021b)
Statistics and Machine Learning Toolbox Version 12.2 (R2021b) mqtt, 2021b MATLAB Answers — New Questions
How to call a function with arguments containing “.” in “run” function?
Lets say I am trying to call a function called printVersion() using run.
Here is printVersion()
function printVersion(version)
disp(version)
end
Now, if version number doesn’t contain decimal, it works fine.
But, If version number has decimal, it trys to find the whole string as a script.
Thank you.Lets say I am trying to call a function called printVersion() using run.
Here is printVersion()
function printVersion(version)
disp(version)
end
Now, if version number doesn’t contain decimal, it works fine.
But, If version number has decimal, it trys to find the whole string as a script.
Thank you. Lets say I am trying to call a function called printVersion() using run.
Here is printVersion()
function printVersion(version)
disp(version)
end
Now, if version number doesn’t contain decimal, it works fine.
But, If version number has decimal, it trys to find the whole string as a script.
Thank you. run, argument with decimal MATLAB Answers — New Questions
Text inside the meshgrid
Hello,
I am trying to place an arbitrary text inside the meshgrid. The code is as follows:
Nx = 201; Ny = 201;
TEXT = ‘K e k’; % Text to draw
FONT_SIZE = 10; % Font size
FONT_NAME = ‘Castellar’; % Font style (you can change this to any available font)
% Create a black image
img = zeros(Ny, Nx);
% Create a figure, axes, and an image object
figure(‘Visible’, ‘off’); % Create an invisible figure
axes(‘Units’, ‘pixels’, ‘Position’, [1, 1, Nx, Ny], ‘Visible’, ‘off’); % Create axes
imageHandle = imshow(img); % Show the black image
% Add text to the image
text(Nx / 2, Ny / 2, TEXT, ‘FontSize’, FONT_SIZE, ‘FontName’, FONT_NAME, …
‘Color’, [1, 1, 1], ‘HorizontalAlignment’, ‘center’, ‘VerticalAlignment’, ‘middle’);
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
% Convert to grayscale and then to binary mask
imgWithTextGray = rgb2gray(imgWithText);
mask = imgWithTextGray > 0;
% Invert the binary mask
mask_inverted = ~mask;
% Convert the inverted binary mask to double type
mask_double = double(mask_inverted);
% Flip upside down
obst = flipud(mask_double);
% Display the final mask (optional)
figure;
imshow(obst);
The code works fine with this grid resolution. However, when i increase the number of mesh points along y-axis (Ny), i get incorrect size of the obst. In particular, the maximum resolution of Ny is 420. For example, if i set Nx=601 and Ny=601, i will get the obst size of 420×601. Obviously, the problem is in this part:
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
I cannot understand why the frame data is limited along y-axis (Ny) by 420 points despite i have enough memory. Can someone suggest anything to fix this problem?
kind regards,
AlexHello,
I am trying to place an arbitrary text inside the meshgrid. The code is as follows:
Nx = 201; Ny = 201;
TEXT = ‘K e k’; % Text to draw
FONT_SIZE = 10; % Font size
FONT_NAME = ‘Castellar’; % Font style (you can change this to any available font)
% Create a black image
img = zeros(Ny, Nx);
% Create a figure, axes, and an image object
figure(‘Visible’, ‘off’); % Create an invisible figure
axes(‘Units’, ‘pixels’, ‘Position’, [1, 1, Nx, Ny], ‘Visible’, ‘off’); % Create axes
imageHandle = imshow(img); % Show the black image
% Add text to the image
text(Nx / 2, Ny / 2, TEXT, ‘FontSize’, FONT_SIZE, ‘FontName’, FONT_NAME, …
‘Color’, [1, 1, 1], ‘HorizontalAlignment’, ‘center’, ‘VerticalAlignment’, ‘middle’);
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
% Convert to grayscale and then to binary mask
imgWithTextGray = rgb2gray(imgWithText);
mask = imgWithTextGray > 0;
% Invert the binary mask
mask_inverted = ~mask;
% Convert the inverted binary mask to double type
mask_double = double(mask_inverted);
% Flip upside down
obst = flipud(mask_double);
% Display the final mask (optional)
figure;
imshow(obst);
The code works fine with this grid resolution. However, when i increase the number of mesh points along y-axis (Ny), i get incorrect size of the obst. In particular, the maximum resolution of Ny is 420. For example, if i set Nx=601 and Ny=601, i will get the obst size of 420×601. Obviously, the problem is in this part:
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
I cannot understand why the frame data is limited along y-axis (Ny) by 420 points despite i have enough memory. Can someone suggest anything to fix this problem?
kind regards,
Alex Hello,
I am trying to place an arbitrary text inside the meshgrid. The code is as follows:
Nx = 201; Ny = 201;
TEXT = ‘K e k’; % Text to draw
FONT_SIZE = 10; % Font size
FONT_NAME = ‘Castellar’; % Font style (you can change this to any available font)
% Create a black image
img = zeros(Ny, Nx);
% Create a figure, axes, and an image object
figure(‘Visible’, ‘off’); % Create an invisible figure
axes(‘Units’, ‘pixels’, ‘Position’, [1, 1, Nx, Ny], ‘Visible’, ‘off’); % Create axes
imageHandle = imshow(img); % Show the black image
% Add text to the image
text(Nx / 2, Ny / 2, TEXT, ‘FontSize’, FONT_SIZE, ‘FontName’, FONT_NAME, …
‘Color’, [1, 1, 1], ‘HorizontalAlignment’, ‘center’, ‘VerticalAlignment’, ‘middle’);
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
% Convert to grayscale and then to binary mask
imgWithTextGray = rgb2gray(imgWithText);
mask = imgWithTextGray > 0;
% Invert the binary mask
mask_inverted = ~mask;
% Convert the inverted binary mask to double type
mask_double = double(mask_inverted);
% Flip upside down
obst = flipud(mask_double);
% Display the final mask (optional)
figure;
imshow(obst);
The code works fine with this grid resolution. However, when i increase the number of mesh points along y-axis (Ny), i get incorrect size of the obst. In particular, the maximum resolution of Ny is 420. For example, if i set Nx=601 and Ny=601, i will get the obst size of 420×601. Obviously, the problem is in this part:
% Get the image data
frame = getframe(gca);
imgWithText = frame.cdata;
I cannot understand why the frame data is limited along y-axis (Ny) by 420 points despite i have enough memory. Can someone suggest anything to fix this problem?
kind regards,
Alex visualization, text MATLAB Answers — New Questions
proper namespace organisation with classes and enums
Hi Folks,
I’m curious of how to proper organise a folder structure for xx
Setting
Consider I’m developing a driver class for some DeviceA made by Manufacturer.
I assume, that I will use this DeviceA in several more Projects and I probably will get another one DeviceB, which use the same manufacturer-specific enumerated definitions of something – let`s say the volume levels will be defined as:
classdef enumVolumeLevels < uint8
enumeration
volLow (0)
volMid (50)
volHigh (100)
end
end
So I will write some kine of driver class including everything manufacturer-specific either as constants or as enumerations.
Folder Structure
So my Folderstructure will look like:
%rootfolder:
.+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
Now if I’m going to write a setter and getter method, which both checks If the provided Value fits to the manufacturer-defined levels
classdef DeviceA
% […]
methods
%getter
function value = get.Volume(obj)
value = Manufacturer.enumVolumeLevels(50); %some dummy getter method
end
%setter
function set.Volume(obj,level)
arguments
obj
mode Manufacturer.enumVolumeLevels
end
% some dummy setter method
end
end
%[…]
end
Standalone usage
Now I’m goind to test my class from the root folder of this project.
… and works fine if I define an object of this class and assign or read the property Volume
test = Manufacturer.DeviceA(); %call constructor
test.Volume = 50; %set property to something
disp(test.Volume); % display this property
Code Refactoring
Following the initial Idea of writing this driver class to use it in several Application specific projects I will include it into root folder of ProjectA, which looks like:
%rootfolder of ProjectA:
.+Drivers+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Drivers+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+Drivers+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
.MyFunc.m %some script containing instancesof the DeviceA-class
But if I write MyFunc.m as follows:
function MyFunc
test = Drivers.Manufacturer.DeviceA(); % call constructor
test.Volume = 50; % set property to something
disp(test.Volume); % display this property
end
… it will fail after the 2nd line because from the setter point of view the enumeration class Manufacturer.enumVolumeLevels is not defined.
So my question is:
–> Is there a solution for organizing my namespace folders to avoid such visibility Problem?
Perhaps I’ll need to chanhe the folder structure of my Manufacturer-package or the way I use the enumeration class in my class DeviceA, but I’m completely stuck right now and have no Idea, what should be the best practice in this case,Hi Folks,
I’m curious of how to proper organise a folder structure for xx
Setting
Consider I’m developing a driver class for some DeviceA made by Manufacturer.
I assume, that I will use this DeviceA in several more Projects and I probably will get another one DeviceB, which use the same manufacturer-specific enumerated definitions of something – let`s say the volume levels will be defined as:
classdef enumVolumeLevels < uint8
enumeration
volLow (0)
volMid (50)
volHigh (100)
end
end
So I will write some kine of driver class including everything manufacturer-specific either as constants or as enumerations.
Folder Structure
So my Folderstructure will look like:
%rootfolder:
.+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
Now if I’m going to write a setter and getter method, which both checks If the provided Value fits to the manufacturer-defined levels
classdef DeviceA
% […]
methods
%getter
function value = get.Volume(obj)
value = Manufacturer.enumVolumeLevels(50); %some dummy getter method
end
%setter
function set.Volume(obj,level)
arguments
obj
mode Manufacturer.enumVolumeLevels
end
% some dummy setter method
end
end
%[…]
end
Standalone usage
Now I’m goind to test my class from the root folder of this project.
… and works fine if I define an object of this class and assign or read the property Volume
test = Manufacturer.DeviceA(); %call constructor
test.Volume = 50; %set property to something
disp(test.Volume); % display this property
Code Refactoring
Following the initial Idea of writing this driver class to use it in several Application specific projects I will include it into root folder of ProjectA, which looks like:
%rootfolder of ProjectA:
.+Drivers+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Drivers+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+Drivers+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
.MyFunc.m %some script containing instancesof the DeviceA-class
But if I write MyFunc.m as follows:
function MyFunc
test = Drivers.Manufacturer.DeviceA(); % call constructor
test.Volume = 50; % set property to something
disp(test.Volume); % display this property
end
… it will fail after the 2nd line because from the setter point of view the enumeration class Manufacturer.enumVolumeLevels is not defined.
So my question is:
–> Is there a solution for organizing my namespace folders to avoid such visibility Problem?
Perhaps I’ll need to chanhe the folder structure of my Manufacturer-package or the way I use the enumeration class in my class DeviceA, but I’m completely stuck right now and have no Idea, what should be the best practice in this case, Hi Folks,
I’m curious of how to proper organise a folder structure for xx
Setting
Consider I’m developing a driver class for some DeviceA made by Manufacturer.
I assume, that I will use this DeviceA in several more Projects and I probably will get another one DeviceB, which use the same manufacturer-specific enumerated definitions of something – let`s say the volume levels will be defined as:
classdef enumVolumeLevels < uint8
enumeration
volLow (0)
volMid (50)
volHigh (100)
end
end
So I will write some kine of driver class including everything manufacturer-specific either as constants or as enumerations.
Folder Structure
So my Folderstructure will look like:
%rootfolder:
.+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
Now if I’m going to write a setter and getter method, which both checks If the provided Value fits to the manufacturer-defined levels
classdef DeviceA
% […]
methods
%getter
function value = get.Volume(obj)
value = Manufacturer.enumVolumeLevels(50); %some dummy getter method
end
%setter
function set.Volume(obj,level)
arguments
obj
mode Manufacturer.enumVolumeLevels
end
% some dummy setter method
end
end
%[…]
end
Standalone usage
Now I’m goind to test my class from the root folder of this project.
… and works fine if I define an object of this class and assign or read the property Volume
test = Manufacturer.DeviceA(); %call constructor
test.Volume = 50; %set property to something
disp(test.Volume); % display this property
Code Refactoring
Following the initial Idea of writing this driver class to use it in several Application specific projects I will include it into root folder of ProjectA, which looks like:
%rootfolder of ProjectA:
.+Drivers+Manufacturer@DeviceADeviceA.m % class definition including constructor and destructor methods and some property ‘Volume’
.+Drivers+Manufacturer@DeviceASomeMethod.m % Methods will be stored separately in class folder
.+Drivers+ManufacturerenumVolumeLevels.m % enumeration class containing manufacturer-specific definitions of volume levels
.MyFunc.m %some script containing instancesof the DeviceA-class
But if I write MyFunc.m as follows:
function MyFunc
test = Drivers.Manufacturer.DeviceA(); % call constructor
test.Volume = 50; % set property to something
disp(test.Volume); % display this property
end
… it will fail after the 2nd line because from the setter point of view the enumeration class Manufacturer.enumVolumeLevels is not defined.
So my question is:
–> Is there a solution for organizing my namespace folders to avoid such visibility Problem?
Perhaps I’ll need to chanhe the folder structure of my Manufacturer-package or the way I use the enumeration class in my class DeviceA, but I’m completely stuck right now and have no Idea, what should be the best practice in this case, namespace, package, class, enumeration class, refactoring, 2021a, .git, modular programming, oop MATLAB Answers — New Questions
Distance measurement using TFmini-S in SIMULINK
We are using TFmini-S connected to ARDUINO UNO at pin no 2 and 3, we want to measure the distance in SIMULINK model for some application. can anyone help us?We are using TFmini-S connected to ARDUINO UNO at pin no 2 and 3, we want to measure the distance in SIMULINK model for some application. can anyone help us? We are using TFmini-S connected to ARDUINO UNO at pin no 2 and 3, we want to measure the distance in SIMULINK model for some application. can anyone help us? tfmini, tfmini-s, arduino, simulink MATLAB Answers — New Questions