Tag Archives: matlab
Unequal, custom, non-evenly spaced colorbar intervals
I have a colorbar ranging from -1000 to 4000 with intervals of 500 throughout. How would I change the colorbar to display intervals so they were spaced 250 from -1000 to 1000, and had an interval of 1000 from 1000 to 4000?I have a colorbar ranging from -1000 to 4000 with intervals of 500 throughout. How would I change the colorbar to display intervals so they were spaced 250 from -1000 to 1000, and had an interval of 1000 from 1000 to 4000? I have a colorbar ranging from -1000 to 4000 with intervals of 500 throughout. How would I change the colorbar to display intervals so they were spaced 250 from -1000 to 1000, and had an interval of 1000 from 1000 to 4000? colorbar MATLAB Answers — New Questions
Is it possible to obtain ANFIS Data for Genetic Algorithm Optimisation in MATLAB?
I use Design Expert to generate regression equations from raw input data. These regression equations are integrated into MATLAB to perform genetic algorithm single and multi-objective optimisation using the MATLAB optimisation tool. I’ve been looking to utilise ANFIS using the MATLAB fuzzy logic designer to fine tune the raw data, so that the fine tuned input data and output data can be used for the optimisation instead.
However, the exports I get from the ANFIS simulation results are not (in my opinion) very clear regarding how I can use these fine-tuned datasets subsequent to training the model and obtaining the Root mean square errors. How can one determine the fine tuned input and output data after the training is complete? I see that the training model generates ranges for each of my membership functions per input but from that range, it is difficult to ascertain whether it can give me a specific dataset of values for input and output compared to the raw input and output data that was entered.
The steps I have performed thus far:
I used 85% (26) of the total data set (30) to train the Sugeno model
I used the remaining 15% (4) of the total data set to validate, from which I got tuned predictions of the 4 reference outputs.
From my observation, System Validation takes the trained model and gives ‘tuned’ predicted values of any dataset that is used for validation
In this regard, it is my assumption that by inputting the full 30 reference data sets would give me tuned versions of themselves as tuned output values, which I can re-inject into Design Expert to obtain a ‘tuned’ regression equation, to be used for MATLAB’s genetic algorithm optimisation.
After trying this, I did get higher R squared values for the regression equation as well, which "kind" of confirmed that this works. However, I have not seen this be done anywhere, nor do I know if my interpretation of how to use the system validation via the fuzzy logic designer to get these tuned outputs is correct.
I’ve also attached a code script that was formulated without the use of the Fuzzy Logic Designer tool to try and ascertain the problem. The ‘idea’ centres around re-integrating the 30 datasets into the validation step this time (even though 26 of them were used to train in the first place), but for the purpose of obtaining tuned versions of themselves before using the tuned versions in Design Expert for generating a ‘tuned’ regression equation for MATLAB’s GA Optimisation. Does this make sense?
I am unsure if these are the right steps. Any advice would be greatly appreciated.
% Load your data
load yourData.mat % Replace with your data file
% Combine inputs and outputs into one dataset
data = [inputs, outputs];
% Split data into training and validation sets
numDataPoints = size(data, 1);
trainRatio = 0.85; % 15% for training
numTrain = round(trainRatio * numDataPoints);
trainData = data(1:numTrain, :);
valData = data(numTrain+1:end, :);
% Generate initial FIS using genfis1
numMFs = 4; % Example number of membership functions
fis = genfis1(trainData, numMFs);
% Train the ANFIS model with validation data
[anfisModel, trainError, stepSize, valError] = anfis(trainData, fis, [], [], valData);
% Display the final model structure
disp(anfisModel);
% Assume ‘newInputs’ is the data for which you want to predict the outputs
newInputs = inputs; % Replace with your actual new input data
% Evaluate the model to get the fine-tuned outputs
fineTunedOutputs = evalfis(newInputs, anfisModel);
% Display the fine-tuned outputs
disp(fineTunedOutputs);I use Design Expert to generate regression equations from raw input data. These regression equations are integrated into MATLAB to perform genetic algorithm single and multi-objective optimisation using the MATLAB optimisation tool. I’ve been looking to utilise ANFIS using the MATLAB fuzzy logic designer to fine tune the raw data, so that the fine tuned input data and output data can be used for the optimisation instead.
However, the exports I get from the ANFIS simulation results are not (in my opinion) very clear regarding how I can use these fine-tuned datasets subsequent to training the model and obtaining the Root mean square errors. How can one determine the fine tuned input and output data after the training is complete? I see that the training model generates ranges for each of my membership functions per input but from that range, it is difficult to ascertain whether it can give me a specific dataset of values for input and output compared to the raw input and output data that was entered.
The steps I have performed thus far:
I used 85% (26) of the total data set (30) to train the Sugeno model
I used the remaining 15% (4) of the total data set to validate, from which I got tuned predictions of the 4 reference outputs.
From my observation, System Validation takes the trained model and gives ‘tuned’ predicted values of any dataset that is used for validation
In this regard, it is my assumption that by inputting the full 30 reference data sets would give me tuned versions of themselves as tuned output values, which I can re-inject into Design Expert to obtain a ‘tuned’ regression equation, to be used for MATLAB’s genetic algorithm optimisation.
After trying this, I did get higher R squared values for the regression equation as well, which "kind" of confirmed that this works. However, I have not seen this be done anywhere, nor do I know if my interpretation of how to use the system validation via the fuzzy logic designer to get these tuned outputs is correct.
I’ve also attached a code script that was formulated without the use of the Fuzzy Logic Designer tool to try and ascertain the problem. The ‘idea’ centres around re-integrating the 30 datasets into the validation step this time (even though 26 of them were used to train in the first place), but for the purpose of obtaining tuned versions of themselves before using the tuned versions in Design Expert for generating a ‘tuned’ regression equation for MATLAB’s GA Optimisation. Does this make sense?
I am unsure if these are the right steps. Any advice would be greatly appreciated.
% Load your data
load yourData.mat % Replace with your data file
% Combine inputs and outputs into one dataset
data = [inputs, outputs];
% Split data into training and validation sets
numDataPoints = size(data, 1);
trainRatio = 0.85; % 15% for training
numTrain = round(trainRatio * numDataPoints);
trainData = data(1:numTrain, :);
valData = data(numTrain+1:end, :);
% Generate initial FIS using genfis1
numMFs = 4; % Example number of membership functions
fis = genfis1(trainData, numMFs);
% Train the ANFIS model with validation data
[anfisModel, trainError, stepSize, valError] = anfis(trainData, fis, [], [], valData);
% Display the final model structure
disp(anfisModel);
% Assume ‘newInputs’ is the data for which you want to predict the outputs
newInputs = inputs; % Replace with your actual new input data
% Evaluate the model to get the fine-tuned outputs
fineTunedOutputs = evalfis(newInputs, anfisModel);
% Display the fine-tuned outputs
disp(fineTunedOutputs); I use Design Expert to generate regression equations from raw input data. These regression equations are integrated into MATLAB to perform genetic algorithm single and multi-objective optimisation using the MATLAB optimisation tool. I’ve been looking to utilise ANFIS using the MATLAB fuzzy logic designer to fine tune the raw data, so that the fine tuned input data and output data can be used for the optimisation instead.
However, the exports I get from the ANFIS simulation results are not (in my opinion) very clear regarding how I can use these fine-tuned datasets subsequent to training the model and obtaining the Root mean square errors. How can one determine the fine tuned input and output data after the training is complete? I see that the training model generates ranges for each of my membership functions per input but from that range, it is difficult to ascertain whether it can give me a specific dataset of values for input and output compared to the raw input and output data that was entered.
The steps I have performed thus far:
I used 85% (26) of the total data set (30) to train the Sugeno model
I used the remaining 15% (4) of the total data set to validate, from which I got tuned predictions of the 4 reference outputs.
From my observation, System Validation takes the trained model and gives ‘tuned’ predicted values of any dataset that is used for validation
In this regard, it is my assumption that by inputting the full 30 reference data sets would give me tuned versions of themselves as tuned output values, which I can re-inject into Design Expert to obtain a ‘tuned’ regression equation, to be used for MATLAB’s genetic algorithm optimisation.
After trying this, I did get higher R squared values for the regression equation as well, which "kind" of confirmed that this works. However, I have not seen this be done anywhere, nor do I know if my interpretation of how to use the system validation via the fuzzy logic designer to get these tuned outputs is correct.
I’ve also attached a code script that was formulated without the use of the Fuzzy Logic Designer tool to try and ascertain the problem. The ‘idea’ centres around re-integrating the 30 datasets into the validation step this time (even though 26 of them were used to train in the first place), but for the purpose of obtaining tuned versions of themselves before using the tuned versions in Design Expert for generating a ‘tuned’ regression equation for MATLAB’s GA Optimisation. Does this make sense?
I am unsure if these are the right steps. Any advice would be greatly appreciated.
% Load your data
load yourData.mat % Replace with your data file
% Combine inputs and outputs into one dataset
data = [inputs, outputs];
% Split data into training and validation sets
numDataPoints = size(data, 1);
trainRatio = 0.85; % 15% for training
numTrain = round(trainRatio * numDataPoints);
trainData = data(1:numTrain, :);
valData = data(numTrain+1:end, :);
% Generate initial FIS using genfis1
numMFs = 4; % Example number of membership functions
fis = genfis1(trainData, numMFs);
% Train the ANFIS model with validation data
[anfisModel, trainError, stepSize, valError] = anfis(trainData, fis, [], [], valData);
% Display the final model structure
disp(anfisModel);
% Assume ‘newInputs’ is the data for which you want to predict the outputs
newInputs = inputs; % Replace with your actual new input data
% Evaluate the model to get the fine-tuned outputs
fineTunedOutputs = evalfis(newInputs, anfisModel);
% Display the fine-tuned outputs
disp(fineTunedOutputs); adaptive neuro fuzzy inference system, anfis, single objective optimisation, multi-objective optimisation, genetic algorithm, fuzzy logic designer, design expert, regression equation, objective function MATLAB Answers — New Questions
How to assign a function to an Excel cell
I have been using xlswrite to write Excel functions into cells in an Excel spreadsheet. When opening the spreadsheet the functions evaluate as expected. Now Mathworks is calling xlswrite "not recommended". I’ve been unable to find a way to accomplish the same thing without xlswrite. How can I use another builtin Matlab function to perform the same as the xlswrite?
% Ways to write to Excel
FN = ‘TestFile.xlsx’;
% Put some values into the test file
Vals = num2cell(rand(10,3));
writecell(Vals, FN, ‘range’, ‘a1’);
% Function for an Excel cell
XFunction = {‘=SUM(B1:B10)’};
% This creates a function in Excel that works
xlswrite(FN, XFunction, 1, ‘D1’);
% This does not
writecell(XFunction, FN, ‘Range’, ‘D2’)
winopen(FN)I have been using xlswrite to write Excel functions into cells in an Excel spreadsheet. When opening the spreadsheet the functions evaluate as expected. Now Mathworks is calling xlswrite "not recommended". I’ve been unable to find a way to accomplish the same thing without xlswrite. How can I use another builtin Matlab function to perform the same as the xlswrite?
% Ways to write to Excel
FN = ‘TestFile.xlsx’;
% Put some values into the test file
Vals = num2cell(rand(10,3));
writecell(Vals, FN, ‘range’, ‘a1’);
% Function for an Excel cell
XFunction = {‘=SUM(B1:B10)’};
% This creates a function in Excel that works
xlswrite(FN, XFunction, 1, ‘D1’);
% This does not
writecell(XFunction, FN, ‘Range’, ‘D2’)
winopen(FN) I have been using xlswrite to write Excel functions into cells in an Excel spreadsheet. When opening the spreadsheet the functions evaluate as expected. Now Mathworks is calling xlswrite "not recommended". I’ve been unable to find a way to accomplish the same thing without xlswrite. How can I use another builtin Matlab function to perform the same as the xlswrite?
% Ways to write to Excel
FN = ‘TestFile.xlsx’;
% Put some values into the test file
Vals = num2cell(rand(10,3));
writecell(Vals, FN, ‘range’, ‘a1’);
% Function for an Excel cell
XFunction = {‘=SUM(B1:B10)’};
% This creates a function in Excel that works
xlswrite(FN, XFunction, 1, ‘D1’);
% This does not
writecell(XFunction, FN, ‘Range’, ‘D2’)
winopen(FN) excel, functions MATLAB Answers — New Questions
Speed up Simulink Model using World Magnetic Model (WMM2020)
I’m attempting to generate Magnetometer measurements for a CubeSat in Simulink using the WMM2020 (World Magnetic Model) Block but when I run a simulation with the block connected the simulation drastically slows down; from 500s instaneously to sticking at 1e-07.
Has anyone used the WMM2020 block and encountered similar problems? If so what did you do to speed up the simulation?I’m attempting to generate Magnetometer measurements for a CubeSat in Simulink using the WMM2020 (World Magnetic Model) Block but when I run a simulation with the block connected the simulation drastically slows down; from 500s instaneously to sticking at 1e-07.
Has anyone used the WMM2020 block and encountered similar problems? If so what did you do to speed up the simulation? I’m attempting to generate Magnetometer measurements for a CubeSat in Simulink using the WMM2020 (World Magnetic Model) Block but when I run a simulation with the block connected the simulation drastically slows down; from 500s instaneously to sticking at 1e-07.
Has anyone used the WMM2020 block and encountered similar problems? If so what did you do to speed up the simulation? wmm2020, simulink, cubesat MATLAB Answers — New Questions
Tune FIS with Training Data
In the example contained in the Fuzzy logic user guide documentation by mathworks, Tune Fuzzy Inference System at the Command Line, page 225, I understand the code used for tuning the FIS, but i dont know how they come up with tunedfismpgprediction.mat . below is the sample code:
[data,name] = loadGasData;
X = data(:,1:6);
Y = data(:,7);
trnX = X(1:2:end,:); % Training input data set
trnY = Y(1:2:end,:); % Training output data set
vldX = X(2:2:end,:); % Validation input data set
vldY = Y(2:2:end,:); % Validation output data set
dataRange = [min(data)’ max(data)’];
fisin = mamfis;
for i = 1:6
fisin = addInput(fisin,dataRange(i,:),’Name’,name(i),’NumMFs’,2);
end
fisin = addOutput(fisin,dataRange(7,:),’Name’,name(7),’NumMFs’,64);
figure
plotfis(fisin)
options = tunefisOptions(‘Method’,’particleswarm’,…
‘OptimizationType’,’learning’, …
‘NumMaxRules’,64);
options.MethodOptions.MaxIterations = 20;
rng(‘default’)
runtunefis = false;
%% This is the stage where am confused, I dont know how they get tunedfismpgprediction.mat
if runtunefis
fisout1 = tunefis(fisin,[],trnX,trnY,options); %#ok
else
tunedfis = load(‘tunedfismpgprediction.mat’);
fisout1 = tunedfis.fisout1;
fprintf(‘Training RMSE = %.3f MPGn’,calculateRMSE(fisout1,trnX,trnY));
end
plotfis(fisout1)In the example contained in the Fuzzy logic user guide documentation by mathworks, Tune Fuzzy Inference System at the Command Line, page 225, I understand the code used for tuning the FIS, but i dont know how they come up with tunedfismpgprediction.mat . below is the sample code:
[data,name] = loadGasData;
X = data(:,1:6);
Y = data(:,7);
trnX = X(1:2:end,:); % Training input data set
trnY = Y(1:2:end,:); % Training output data set
vldX = X(2:2:end,:); % Validation input data set
vldY = Y(2:2:end,:); % Validation output data set
dataRange = [min(data)’ max(data)’];
fisin = mamfis;
for i = 1:6
fisin = addInput(fisin,dataRange(i,:),’Name’,name(i),’NumMFs’,2);
end
fisin = addOutput(fisin,dataRange(7,:),’Name’,name(7),’NumMFs’,64);
figure
plotfis(fisin)
options = tunefisOptions(‘Method’,’particleswarm’,…
‘OptimizationType’,’learning’, …
‘NumMaxRules’,64);
options.MethodOptions.MaxIterations = 20;
rng(‘default’)
runtunefis = false;
%% This is the stage where am confused, I dont know how they get tunedfismpgprediction.mat
if runtunefis
fisout1 = tunefis(fisin,[],trnX,trnY,options); %#ok
else
tunedfis = load(‘tunedfismpgprediction.mat’);
fisout1 = tunedfis.fisout1;
fprintf(‘Training RMSE = %.3f MPGn’,calculateRMSE(fisout1,trnX,trnY));
end
plotfis(fisout1) In the example contained in the Fuzzy logic user guide documentation by mathworks, Tune Fuzzy Inference System at the Command Line, page 225, I understand the code used for tuning the FIS, but i dont know how they come up with tunedfismpgprediction.mat . below is the sample code:
[data,name] = loadGasData;
X = data(:,1:6);
Y = data(:,7);
trnX = X(1:2:end,:); % Training input data set
trnY = Y(1:2:end,:); % Training output data set
vldX = X(2:2:end,:); % Validation input data set
vldY = Y(2:2:end,:); % Validation output data set
dataRange = [min(data)’ max(data)’];
fisin = mamfis;
for i = 1:6
fisin = addInput(fisin,dataRange(i,:),’Name’,name(i),’NumMFs’,2);
end
fisin = addOutput(fisin,dataRange(7,:),’Name’,name(7),’NumMFs’,64);
figure
plotfis(fisin)
options = tunefisOptions(‘Method’,’particleswarm’,…
‘OptimizationType’,’learning’, …
‘NumMaxRules’,64);
options.MethodOptions.MaxIterations = 20;
rng(‘default’)
runtunefis = false;
%% This is the stage where am confused, I dont know how they get tunedfismpgprediction.mat
if runtunefis
fisout1 = tunefis(fisin,[],trnX,trnY,options); %#ok
else
tunedfis = load(‘tunedfismpgprediction.mat’);
fisout1 = tunedfis.fisout1;
fprintf(‘Training RMSE = %.3f MPGn’,calculateRMSE(fisout1,trnX,trnY));
end
plotfis(fisout1) tunefis, fis, fuzzy inference system MATLAB Answers — New Questions
Midpoint integration with for loop
Hi,
Computing a numerical integration with the Midpoint Method I’m struggling with the output of my function, while with Euler I got the expected result, with this method I’m getting a different graphical solution far away than the analytical solution (and the euler’s one). What could be wrongly specified?
Thanks for your help.
% Midpoint method
% General information
L = 0.61; % [m]
G = 9.81; % gamma [m/s^2]
% Sampling interval
h = 0.1;
%h = 0.05;
%h = 0.01;
ti = 0; % Initial time
tf = 4; % Final time
t = ti:h:tf; % Time vector
function [md] = midpoint(t,L,G,h)
% Initial Value problem
md = zeros(2, length(t));
md(1,1) = pi/40;
for i = 1:length(t)-1
pmd = md(2,i) + (h/2) + (-G/L)*sin(md(1,i)) + (h/2) * [md(2,i); (-G/L)*sin(md(1,i))];
md(:,i+1) = md(:,i) + h * pmd;
end
endHi,
Computing a numerical integration with the Midpoint Method I’m struggling with the output of my function, while with Euler I got the expected result, with this method I’m getting a different graphical solution far away than the analytical solution (and the euler’s one). What could be wrongly specified?
Thanks for your help.
% Midpoint method
% General information
L = 0.61; % [m]
G = 9.81; % gamma [m/s^2]
% Sampling interval
h = 0.1;
%h = 0.05;
%h = 0.01;
ti = 0; % Initial time
tf = 4; % Final time
t = ti:h:tf; % Time vector
function [md] = midpoint(t,L,G,h)
% Initial Value problem
md = zeros(2, length(t));
md(1,1) = pi/40;
for i = 1:length(t)-1
pmd = md(2,i) + (h/2) + (-G/L)*sin(md(1,i)) + (h/2) * [md(2,i); (-G/L)*sin(md(1,i))];
md(:,i+1) = md(:,i) + h * pmd;
end
end Hi,
Computing a numerical integration with the Midpoint Method I’m struggling with the output of my function, while with Euler I got the expected result, with this method I’m getting a different graphical solution far away than the analytical solution (and the euler’s one). What could be wrongly specified?
Thanks for your help.
% Midpoint method
% General information
L = 0.61; % [m]
G = 9.81; % gamma [m/s^2]
% Sampling interval
h = 0.1;
%h = 0.05;
%h = 0.01;
ti = 0; % Initial time
tf = 4; % Final time
t = ti:h:tf; % Time vector
function [md] = midpoint(t,L,G,h)
% Initial Value problem
md = zeros(2, length(t));
md(1,1) = pi/40;
for i = 1:length(t)-1
pmd = md(2,i) + (h/2) + (-G/L)*sin(md(1,i)) + (h/2) * [md(2,i); (-G/L)*sin(md(1,i))];
md(:,i+1) = md(:,i) + h * pmd;
end
end midpoint, numerical integration, for loop, function, indexing, iteration MATLAB Answers — New Questions
How to get Simulink HDL Coder RAM with non power of 2 depth.
Simulink RAMs ask the user for the address bits instead of the data depth, and then generate HDL using a power-of-2 depth. This may result in extra, unused RAMs to be inferred by a synthesis tool. For example if your RAM could be implemented in 3 chained Block RAMs of depth 2^10 for a total depth of 3*2^10 but due to the Simulink RAM specifying a depth of 2^12 (based on needing 12 address bits) the tool will use 4 Block RAMs instead of the minimum 3.
Is it possible to get Simulink to generate RAM HDL with a specified depth? The output code would look something like below:
module SimpleDualPortRAM_generic
(clk,
wr_din,
wr_addr,
wr_en,
rd_addr,
dout);
parameter integer DataWidth = 9;
parameter integer DataDepth = 12288;
localparam AddrWidth = $clog2(DataDepth);
input clk;
input [DataWidth – 1:0] wr_din; // parameterized width
input [AddrWidth – 1:0] wr_addr; // parameterized width
input wr_en; // ufix1
input [AddrWidth – 1:0] rd_addr; // parameterized width
output [DataWidth – 1:0] dout; // parameterized width
reg [DataWidth – 1:0] ram [DataDepth – 1:0];
reg [DataWidth – 1:0] data_int;
always @(posedge clk)
begin : SimpleDualPortRAM_generic_process
if (wr_en == 1’b1) begin
ram[wr_addr] <= wr_din;
end
data_int <= ram[rd_addr];
end
assign dout = data_int;
endmodule // SimpleDualPortRAM_genericSimulink RAMs ask the user for the address bits instead of the data depth, and then generate HDL using a power-of-2 depth. This may result in extra, unused RAMs to be inferred by a synthesis tool. For example if your RAM could be implemented in 3 chained Block RAMs of depth 2^10 for a total depth of 3*2^10 but due to the Simulink RAM specifying a depth of 2^12 (based on needing 12 address bits) the tool will use 4 Block RAMs instead of the minimum 3.
Is it possible to get Simulink to generate RAM HDL with a specified depth? The output code would look something like below:
module SimpleDualPortRAM_generic
(clk,
wr_din,
wr_addr,
wr_en,
rd_addr,
dout);
parameter integer DataWidth = 9;
parameter integer DataDepth = 12288;
localparam AddrWidth = $clog2(DataDepth);
input clk;
input [DataWidth – 1:0] wr_din; // parameterized width
input [AddrWidth – 1:0] wr_addr; // parameterized width
input wr_en; // ufix1
input [AddrWidth – 1:0] rd_addr; // parameterized width
output [DataWidth – 1:0] dout; // parameterized width
reg [DataWidth – 1:0] ram [DataDepth – 1:0];
reg [DataWidth – 1:0] data_int;
always @(posedge clk)
begin : SimpleDualPortRAM_generic_process
if (wr_en == 1’b1) begin
ram[wr_addr] <= wr_din;
end
data_int <= ram[rd_addr];
end
assign dout = data_int;
endmodule // SimpleDualPortRAM_generic Simulink RAMs ask the user for the address bits instead of the data depth, and then generate HDL using a power-of-2 depth. This may result in extra, unused RAMs to be inferred by a synthesis tool. For example if your RAM could be implemented in 3 chained Block RAMs of depth 2^10 for a total depth of 3*2^10 but due to the Simulink RAM specifying a depth of 2^12 (based on needing 12 address bits) the tool will use 4 Block RAMs instead of the minimum 3.
Is it possible to get Simulink to generate RAM HDL with a specified depth? The output code would look something like below:
module SimpleDualPortRAM_generic
(clk,
wr_din,
wr_addr,
wr_en,
rd_addr,
dout);
parameter integer DataWidth = 9;
parameter integer DataDepth = 12288;
localparam AddrWidth = $clog2(DataDepth);
input clk;
input [DataWidth – 1:0] wr_din; // parameterized width
input [AddrWidth – 1:0] wr_addr; // parameterized width
input wr_en; // ufix1
input [AddrWidth – 1:0] rd_addr; // parameterized width
output [DataWidth – 1:0] dout; // parameterized width
reg [DataWidth – 1:0] ram [DataDepth – 1:0];
reg [DataWidth – 1:0] data_int;
always @(posedge clk)
begin : SimpleDualPortRAM_generic_process
if (wr_en == 1’b1) begin
ram[wr_addr] <= wr_din;
end
data_int <= ram[rd_addr];
end
assign dout = data_int;
endmodule // SimpleDualPortRAM_generic simulink ram, ram depth, ram, dual port ram MATLAB Answers — New Questions
How is the Shape factor for laminar flow viscous friction calculated in Regenerator pipe (G) in Stirling Simscape model.
In the model’s parameter script it has various properties for the regenerator including reynold’s number. i know how reynold’s number is caluclated but i cant understand how the assumingly conductive shape factor is calculated and why is it put into Shape factor for laminar flow viscous friction tab in pipe block
regenerator.geometry.length = geometry.displacer_piston.length – 2*crank_wheel.slidercrank_disp.crank_radius;
regenerator.geometry.area = A;
regenerator.geometry.hydraulic_diam = 4*A/P;
regenerator.fric_therm.length_add = 0.01*regenerator.geometry.length;
regenerator.fric_therm.roughness = 15e-6; %[m]
regenerator.fric_therm.Re_lam = 2000;
regenerator.fric_therm.Re_tur = 4000;
regenerator.fric_therm.shape_factor = 64;
regenerator.fric_therm.Nu_lam = 3.66;In the model’s parameter script it has various properties for the regenerator including reynold’s number. i know how reynold’s number is caluclated but i cant understand how the assumingly conductive shape factor is calculated and why is it put into Shape factor for laminar flow viscous friction tab in pipe block
regenerator.geometry.length = geometry.displacer_piston.length – 2*crank_wheel.slidercrank_disp.crank_radius;
regenerator.geometry.area = A;
regenerator.geometry.hydraulic_diam = 4*A/P;
regenerator.fric_therm.length_add = 0.01*regenerator.geometry.length;
regenerator.fric_therm.roughness = 15e-6; %[m]
regenerator.fric_therm.Re_lam = 2000;
regenerator.fric_therm.Re_tur = 4000;
regenerator.fric_therm.shape_factor = 64;
regenerator.fric_therm.Nu_lam = 3.66; In the model’s parameter script it has various properties for the regenerator including reynold’s number. i know how reynold’s number is caluclated but i cant understand how the assumingly conductive shape factor is calculated and why is it put into Shape factor for laminar flow viscous friction tab in pipe block
regenerator.geometry.length = geometry.displacer_piston.length – 2*crank_wheel.slidercrank_disp.crank_radius;
regenerator.geometry.area = A;
regenerator.geometry.hydraulic_diam = 4*A/P;
regenerator.fric_therm.length_add = 0.01*regenerator.geometry.length;
regenerator.fric_therm.roughness = 15e-6; %[m]
regenerator.fric_therm.Re_lam = 2000;
regenerator.fric_therm.Re_tur = 4000;
regenerator.fric_therm.shape_factor = 64;
regenerator.fric_therm.Nu_lam = 3.66; simscape MATLAB Answers — New Questions
Can I use Matlab 2024a license with 2022b client software version
I am going to update my license for 2024a and my license has that version listed. I want to update the license but keep the client software at 2022b for now. I will update the client software at a later date and need the backwards compatibility temporily. Is it possible to update my license to 2024a but keep the 2022b client software? Thank you.I am going to update my license for 2024a and my license has that version listed. I want to update the license but keep the client software at 2022b for now. I will update the client software at a later date and need the backwards compatibility temporily. Is it possible to update my license to 2024a but keep the 2022b client software? Thank you. I am going to update my license for 2024a and my license has that version listed. I want to update the license but keep the client software at 2022b for now. I will update the client software at a later date and need the backwards compatibility temporily. Is it possible to update my license to 2024a but keep the 2022b client software? Thank you. license, 2024a, 2022b MATLAB Answers — New Questions
How to do differentiation in Matlab
clc;
clear;
THT = 0:12:360;
L_spm = [67.14387343 67.08087868 71.27139857 77.8011002 83.48598354 86.53313448 86.96218524 86.54264509 86.55222711 86.96002063 86.43128473 83.48041917 77.77271123 71.24225453 67.07111986 67.25745156 67.08157624 71.23009025 77.76475253 83.46615144 86.42639244 86.96777069 86.54247287 86.56340306 86.9412182 86.52945688 83.49766473 77.78259172 71.25635182 67.06788196 67.14602485];
How to differentiate L_spm with respect to THT? Thanks.clc;
clear;
THT = 0:12:360;
L_spm = [67.14387343 67.08087868 71.27139857 77.8011002 83.48598354 86.53313448 86.96218524 86.54264509 86.55222711 86.96002063 86.43128473 83.48041917 77.77271123 71.24225453 67.07111986 67.25745156 67.08157624 71.23009025 77.76475253 83.46615144 86.42639244 86.96777069 86.54247287 86.56340306 86.9412182 86.52945688 83.49766473 77.78259172 71.25635182 67.06788196 67.14602485];
How to differentiate L_spm with respect to THT? Thanks. clc;
clear;
THT = 0:12:360;
L_spm = [67.14387343 67.08087868 71.27139857 77.8011002 83.48598354 86.53313448 86.96218524 86.54264509 86.55222711 86.96002063 86.43128473 83.48041917 77.77271123 71.24225453 67.07111986 67.25745156 67.08157624 71.23009025 77.76475253 83.46615144 86.42639244 86.96777069 86.54247287 86.56340306 86.9412182 86.52945688 83.49766473 77.78259172 71.25635182 67.06788196 67.14602485];
How to differentiate L_spm with respect to THT? Thanks. differentiation MATLAB Answers — New Questions
How to customise Polar Plots – Part 2
Following on from a question I had a year ago (How to customise Polar Plots – MATLAB Answers – MATLAB Central (mathworks.com)), I am in need of shifting the location of the chart/axis titles. My polar plot has a range of 180^o: from-90 to 90 with 0 at the middle bottom, but because I’ve had to increase the axis fontweight to bold, the Raxis values and label overlap with the chart title. When I try to relocate the chart title horizontally to the left, it is going off the screen. Can someone advise, I’ve included the relevant code below:
polarplot(th2-pi/2,Rs); Ax = gca; Ax.ThetaZeroLocation = ‘bottom’; Ax.ThetaLim = [270 360+90];
Ax.LineWidth = 2; Ax.FontSize = 16; Ax.FontWeight = ‘bold’; Ax.RLim = [0 1e-7]; Ax.ThetaTick = Ax.ThetaLim(1):10:Ax.ThetaLim(2);
Ax.RTick = Ax.RLim(1):1e-8:Ax.RLim(2); Ax.ThetaTickLabel = compose(‘%d’,-90:10:90);
title(‘I want this chart title to be wholly visible in the top-left hand corner of the screen’,’FontSize’,20,’FontWeight’,’bold’);Following on from a question I had a year ago (How to customise Polar Plots – MATLAB Answers – MATLAB Central (mathworks.com)), I am in need of shifting the location of the chart/axis titles. My polar plot has a range of 180^o: from-90 to 90 with 0 at the middle bottom, but because I’ve had to increase the axis fontweight to bold, the Raxis values and label overlap with the chart title. When I try to relocate the chart title horizontally to the left, it is going off the screen. Can someone advise, I’ve included the relevant code below:
polarplot(th2-pi/2,Rs); Ax = gca; Ax.ThetaZeroLocation = ‘bottom’; Ax.ThetaLim = [270 360+90];
Ax.LineWidth = 2; Ax.FontSize = 16; Ax.FontWeight = ‘bold’; Ax.RLim = [0 1e-7]; Ax.ThetaTick = Ax.ThetaLim(1):10:Ax.ThetaLim(2);
Ax.RTick = Ax.RLim(1):1e-8:Ax.RLim(2); Ax.ThetaTickLabel = compose(‘%d’,-90:10:90);
title(‘I want this chart title to be wholly visible in the top-left hand corner of the screen’,’FontSize’,20,’FontWeight’,’bold’); Following on from a question I had a year ago (How to customise Polar Plots – MATLAB Answers – MATLAB Central (mathworks.com)), I am in need of shifting the location of the chart/axis titles. My polar plot has a range of 180^o: from-90 to 90 with 0 at the middle bottom, but because I’ve had to increase the axis fontweight to bold, the Raxis values and label overlap with the chart title. When I try to relocate the chart title horizontally to the left, it is going off the screen. Can someone advise, I’ve included the relevant code below:
polarplot(th2-pi/2,Rs); Ax = gca; Ax.ThetaZeroLocation = ‘bottom’; Ax.ThetaLim = [270 360+90];
Ax.LineWidth = 2; Ax.FontSize = 16; Ax.FontWeight = ‘bold’; Ax.RLim = [0 1e-7]; Ax.ThetaTick = Ax.ThetaLim(1):10:Ax.ThetaLim(2);
Ax.RTick = Ax.RLim(1):1e-8:Ax.RLim(2); Ax.ThetaTickLabel = compose(‘%d’,-90:10:90);
title(‘I want this chart title to be wholly visible in the top-left hand corner of the screen’,’FontSize’,20,’FontWeight’,’bold’); polarplot, axis, title MATLAB Answers — New Questions
How to connect MATLAB with EES(engineering equation solver) using MATLAB code?
I have wrote some MATLAB code, using some parameters from genetic algorithm input to EES for calculating thermodynamic properties. Then I get the calculated result and output from EES to matlab. But I met some problems, here is the connecting matlab code below:
Because I have bought the academic version EES software, I input the parameters into EES by writing parameter value in dat file, and EES got the data from dat file. However, the calculating process stopped in the EES interface, no command have executed after that. If the program runs successfully, EES should return calculating results to MATLAB within seconds.
I have no idea what wrong with it, can anyone help me? I can’t thank you enough.I have wrote some MATLAB code, using some parameters from genetic algorithm input to EES for calculating thermodynamic properties. Then I get the calculated result and output from EES to matlab. But I met some problems, here is the connecting matlab code below:
Because I have bought the academic version EES software, I input the parameters into EES by writing parameter value in dat file, and EES got the data from dat file. However, the calculating process stopped in the EES interface, no command have executed after that. If the program runs successfully, EES should return calculating results to MATLAB within seconds.
I have no idea what wrong with it, can anyone help me? I can’t thank you enough. I have wrote some MATLAB code, using some parameters from genetic algorithm input to EES for calculating thermodynamic properties. Then I get the calculated result and output from EES to matlab. But I met some problems, here is the connecting matlab code below:
Because I have bought the academic version EES software, I input the parameters into EES by writing parameter value in dat file, and EES got the data from dat file. However, the calculating process stopped in the EES interface, no command have executed after that. If the program runs successfully, EES should return calculating results to MATLAB within seconds.
I have no idea what wrong with it, can anyone help me? I can’t thank you enough. engineering equation solver, ees, interaction MATLAB Answers — New Questions
Helical trajectory generation using frenet frame
How to generate a helical trajectory using frenet frame?
Position vector given as
[x y z]^T=[[500sin(0.01t) 500cos(0.01t) −2t−20000]^T
initial position is
ζ (0) = [−300 0 −19800]^T
initial line velocity is
υ(0) =[5 0 0]^T,
the initial attitude is
γ (0) = [0, 0, 0]^T
How to convert this data to frenet frame and find attitude coordinates and then plot a helical trajectoryHow to generate a helical trajectory using frenet frame?
Position vector given as
[x y z]^T=[[500sin(0.01t) 500cos(0.01t) −2t−20000]^T
initial position is
ζ (0) = [−300 0 −19800]^T
initial line velocity is
υ(0) =[5 0 0]^T,
the initial attitude is
γ (0) = [0, 0, 0]^T
How to convert this data to frenet frame and find attitude coordinates and then plot a helical trajectory How to generate a helical trajectory using frenet frame?
Position vector given as
[x y z]^T=[[500sin(0.01t) 500cos(0.01t) −2t−20000]^T
initial position is
ζ (0) = [−300 0 −19800]^T
initial line velocity is
υ(0) =[5 0 0]^T,
the initial attitude is
γ (0) = [0, 0, 0]^T
How to convert this data to frenet frame and find attitude coordinates and then plot a helical trajectory frenet, matlab, program, trajectory, helical, helix MATLAB Answers — New Questions
I was trying to play video in integrate HTML of App designer, but it is not working correctly on App. It does work in browsers.
Here is my code for HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件选择器</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f4f4f4;
}
.chosefile {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 50px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.calc {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 200px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.chosefile:hover, .calc:hover {
background-color: #0056b3;
}
.chosefile:active, .calc:hover {
transform: scale(0.98);
}
</style>
<style>
#frameMarker {
width: 100px;
height: 10px;
background-color: red;
position: absolute;
}
#coordinateArea {
width: 100%;
height: 20px;
position: relative;
background-color: #ddd;
}
</style>
</head>
<body>
<input type="file" id="fileInput" style="display: none;" />
<button class="chosefile" onclick="setup()">选择文件</button>
<button class="calc" onclick="setup();">选择</button>
<div id="prompt">
<span><label for="prompt"><strong>Data from MATLAB will display here:</strong></label></span>
<br/><br/>
<div id ="dataDisplay">Please set data in MATLAB…</div>
</div>
<video id="videoPlayer" width="320" height="240" controls>
<source src="E:/OneDrive/BDF/test.mp4" type="video/mp4">
Your browser does not support the video element.
</video>
<div id="coordinateArea">
<div id="frameMarker"></div>
</div>
</body>
<script type="text/javascript">
function setup(htmlComponent) {
let button1 = document.querySelector(".calc");
let button2 = document.querySelector(".chosefile")
button1.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ButtonClicked",1);
});
button2.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ChosefileClicked",1);
});
htmlComponent.addEventListener("DataChanged", function(event) {
document.getElementById("dataDisplay").innerHTML = htmlComponent.Data;
});
}
</script>
<script>
document.getElementById(‘videoPlayer’).addEventListener(‘timeupdate’, function() {
var video = document.getElementById(‘videoPlayer’);
var marker = document.getElementById(‘frameMarker’);
var duration = video.duration;
var currentTime = video.currentTime;
var coordinateAreaWidth = document.getElementById(‘coordinateArea’).clientWidth;
// 计算标记的位置
var position = (currentTime / duration) * coordinateAreaWidth;
marker.style.left = position + ‘px’;
});
</script>
</html>Here is my code for HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件选择器</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f4f4f4;
}
.chosefile {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 50px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.calc {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 200px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.chosefile:hover, .calc:hover {
background-color: #0056b3;
}
.chosefile:active, .calc:hover {
transform: scale(0.98);
}
</style>
<style>
#frameMarker {
width: 100px;
height: 10px;
background-color: red;
position: absolute;
}
#coordinateArea {
width: 100%;
height: 20px;
position: relative;
background-color: #ddd;
}
</style>
</head>
<body>
<input type="file" id="fileInput" style="display: none;" />
<button class="chosefile" onclick="setup()">选择文件</button>
<button class="calc" onclick="setup();">选择</button>
<div id="prompt">
<span><label for="prompt"><strong>Data from MATLAB will display here:</strong></label></span>
<br/><br/>
<div id ="dataDisplay">Please set data in MATLAB…</div>
</div>
<video id="videoPlayer" width="320" height="240" controls>
<source src="E:/OneDrive/BDF/test.mp4" type="video/mp4">
Your browser does not support the video element.
</video>
<div id="coordinateArea">
<div id="frameMarker"></div>
</div>
</body>
<script type="text/javascript">
function setup(htmlComponent) {
let button1 = document.querySelector(".calc");
let button2 = document.querySelector(".chosefile")
button1.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ButtonClicked",1);
});
button2.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ChosefileClicked",1);
});
htmlComponent.addEventListener("DataChanged", function(event) {
document.getElementById("dataDisplay").innerHTML = htmlComponent.Data;
});
}
</script>
<script>
document.getElementById(‘videoPlayer’).addEventListener(‘timeupdate’, function() {
var video = document.getElementById(‘videoPlayer’);
var marker = document.getElementById(‘frameMarker’);
var duration = video.duration;
var currentTime = video.currentTime;
var coordinateAreaWidth = document.getElementById(‘coordinateArea’).clientWidth;
// 计算标记的位置
var position = (currentTime / duration) * coordinateAreaWidth;
marker.style.left = position + ‘px’;
});
</script>
</html> Here is my code for HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文件选择器</title>
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f4f4f4;
}
.chosefile {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 50px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.calc {
position: absolute;
top: 50px; /* 距顶部50像素 */
left: 200px; /* 距左侧50像素 */
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
transition: background-color 0.3s, transform 0.2s;
}
.chosefile:hover, .calc:hover {
background-color: #0056b3;
}
.chosefile:active, .calc:hover {
transform: scale(0.98);
}
</style>
<style>
#frameMarker {
width: 100px;
height: 10px;
background-color: red;
position: absolute;
}
#coordinateArea {
width: 100%;
height: 20px;
position: relative;
background-color: #ddd;
}
</style>
</head>
<body>
<input type="file" id="fileInput" style="display: none;" />
<button class="chosefile" onclick="setup()">选择文件</button>
<button class="calc" onclick="setup();">选择</button>
<div id="prompt">
<span><label for="prompt"><strong>Data from MATLAB will display here:</strong></label></span>
<br/><br/>
<div id ="dataDisplay">Please set data in MATLAB…</div>
</div>
<video id="videoPlayer" width="320" height="240" controls>
<source src="E:/OneDrive/BDF/test.mp4" type="video/mp4">
Your browser does not support the video element.
</video>
<div id="coordinateArea">
<div id="frameMarker"></div>
</div>
</body>
<script type="text/javascript">
function setup(htmlComponent) {
let button1 = document.querySelector(".calc");
let button2 = document.querySelector(".chosefile")
button1.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ButtonClicked",1);
});
button2.addEventListener("click", function(event) {
htmlComponent.sendEventToMATLAB("ChosefileClicked",1);
});
htmlComponent.addEventListener("DataChanged", function(event) {
document.getElementById("dataDisplay").innerHTML = htmlComponent.Data;
});
}
</script>
<script>
document.getElementById(‘videoPlayer’).addEventListener(‘timeupdate’, function() {
var video = document.getElementById(‘videoPlayer’);
var marker = document.getElementById(‘frameMarker’);
var duration = video.duration;
var currentTime = video.currentTime;
var coordinateAreaWidth = document.getElementById(‘coordinateArea’).clientWidth;
// 计算标记的位置
var position = (currentTime / duration) * coordinateAreaWidth;
marker.style.left = position + ‘px’;
});
</script>
</html> appdesigner, app designer MATLAB Answers — New Questions
I have written a code to reproduce fig 2 in the attached paper but I don’t seem to get it right.
I am trying a code to reproduce fig 2 in the attached paper, but I don’t seem to get it right. Any help would be apreciated. Thanks
% Material properties
rho = 1.35e3; % Density in kg/m^3
Cp = @(T) (-0.07827 + 0.00223*T – 8.66702e-7*T.^2 + 9.63112e-11*T.^3) * 1e3; % Specific heat in J/g°C converted to J/kgK
alpha = 3.5e3; % Absorption coefficient in m^-1
R = 0.1; % Reflectivity
pulseWidth = 6e-9; % Pulse width in seconds
fluence = 790e-3; % Laser fluence in J/cm^2
I0 = fluence / pulseWidth; % Peak laser intensity
% Spatial domain
L = 1e-3; % Length of the sample in meters (1 mm)
num_elements = 100; % Number of spatial elements
x = linspace(0, L, num_elements); % Spatial grid
% Time domain
total_time = 50e-9; % Total time in seconds
num_time_steps = 500; % Number of time steps
t = linspace(0, total_time, num_time_steps); % Time vector
% Initial temperature distribution
T0 = 20; % Initial temperature in °C
T = T0 * ones(num_elements, 1); % Initial temperature vector
% Thermal diffusivity (D = k / (rho * Cp))
D = 0.4e-4; % Thermal diffusivity in m^2/s
k = D * rho * Cp(T0); % Thermal conductivity in W/m°C
% FEM setup
dx = L / (num_elements – 1); % Spatial step size
dt = total_time / num_time_steps; % Time step size
% FEM matrices
A = zeros(num_elements, num_elements);
B = zeros(num_elements, 1);
% Assembly of FEM matrices
for i = 2:num_elements-1
A(i, i-1) = k / dx^2;
A(i, i) = -2 * k / dx^2;
A(i, i+1) = k / dx^2;
end
% Boundary conditions
A(1, 1) = 1;
A(1, 2) = 0;
A(end, end) = 1;
A(end, end-1) = 0;
% Time-stepping solution
T_history = zeros(num_elements, num_time_steps);
T_history(:, 1) = T;
for n = 1:num_time_steps-1
B(2:end-1) = alpha * I0 * exp(-alpha * x(2:end-1)) * (1 – R);
B(end) = T0; % Bottom boundary condition (fixed temperature)
T = T + dt * (A * T + B);
T(1) = T0; % surface boundary condition
T_history(:, n+1) = T;
end
% Plotting the results
figure;
hold on;
plot(t, T_history(1, :), ‘r’, ‘DisplayName’, ‘Surface’);
plot(t, T_history(find(x >= 1e-6, 1), :), ‘g’, ‘DisplayName’, ‘1 mum’);
plot(t, T_history(find(x >= 5e-6, 1), :), ‘b’, ‘DisplayName’, ‘5 mum’);
xlabel(‘Time (s)’);
ylabel(‘Temperature (°C)’);
legend;
title(‘Temperature profiles at different depths’);
hold off;I am trying a code to reproduce fig 2 in the attached paper, but I don’t seem to get it right. Any help would be apreciated. Thanks
% Material properties
rho = 1.35e3; % Density in kg/m^3
Cp = @(T) (-0.07827 + 0.00223*T – 8.66702e-7*T.^2 + 9.63112e-11*T.^3) * 1e3; % Specific heat in J/g°C converted to J/kgK
alpha = 3.5e3; % Absorption coefficient in m^-1
R = 0.1; % Reflectivity
pulseWidth = 6e-9; % Pulse width in seconds
fluence = 790e-3; % Laser fluence in J/cm^2
I0 = fluence / pulseWidth; % Peak laser intensity
% Spatial domain
L = 1e-3; % Length of the sample in meters (1 mm)
num_elements = 100; % Number of spatial elements
x = linspace(0, L, num_elements); % Spatial grid
% Time domain
total_time = 50e-9; % Total time in seconds
num_time_steps = 500; % Number of time steps
t = linspace(0, total_time, num_time_steps); % Time vector
% Initial temperature distribution
T0 = 20; % Initial temperature in °C
T = T0 * ones(num_elements, 1); % Initial temperature vector
% Thermal diffusivity (D = k / (rho * Cp))
D = 0.4e-4; % Thermal diffusivity in m^2/s
k = D * rho * Cp(T0); % Thermal conductivity in W/m°C
% FEM setup
dx = L / (num_elements – 1); % Spatial step size
dt = total_time / num_time_steps; % Time step size
% FEM matrices
A = zeros(num_elements, num_elements);
B = zeros(num_elements, 1);
% Assembly of FEM matrices
for i = 2:num_elements-1
A(i, i-1) = k / dx^2;
A(i, i) = -2 * k / dx^2;
A(i, i+1) = k / dx^2;
end
% Boundary conditions
A(1, 1) = 1;
A(1, 2) = 0;
A(end, end) = 1;
A(end, end-1) = 0;
% Time-stepping solution
T_history = zeros(num_elements, num_time_steps);
T_history(:, 1) = T;
for n = 1:num_time_steps-1
B(2:end-1) = alpha * I0 * exp(-alpha * x(2:end-1)) * (1 – R);
B(end) = T0; % Bottom boundary condition (fixed temperature)
T = T + dt * (A * T + B);
T(1) = T0; % surface boundary condition
T_history(:, n+1) = T;
end
% Plotting the results
figure;
hold on;
plot(t, T_history(1, :), ‘r’, ‘DisplayName’, ‘Surface’);
plot(t, T_history(find(x >= 1e-6, 1), :), ‘g’, ‘DisplayName’, ‘1 mum’);
plot(t, T_history(find(x >= 5e-6, 1), :), ‘b’, ‘DisplayName’, ‘5 mum’);
xlabel(‘Time (s)’);
ylabel(‘Temperature (°C)’);
legend;
title(‘Temperature profiles at different depths’);
hold off; I am trying a code to reproduce fig 2 in the attached paper, but I don’t seem to get it right. Any help would be apreciated. Thanks
% Material properties
rho = 1.35e3; % Density in kg/m^3
Cp = @(T) (-0.07827 + 0.00223*T – 8.66702e-7*T.^2 + 9.63112e-11*T.^3) * 1e3; % Specific heat in J/g°C converted to J/kgK
alpha = 3.5e3; % Absorption coefficient in m^-1
R = 0.1; % Reflectivity
pulseWidth = 6e-9; % Pulse width in seconds
fluence = 790e-3; % Laser fluence in J/cm^2
I0 = fluence / pulseWidth; % Peak laser intensity
% Spatial domain
L = 1e-3; % Length of the sample in meters (1 mm)
num_elements = 100; % Number of spatial elements
x = linspace(0, L, num_elements); % Spatial grid
% Time domain
total_time = 50e-9; % Total time in seconds
num_time_steps = 500; % Number of time steps
t = linspace(0, total_time, num_time_steps); % Time vector
% Initial temperature distribution
T0 = 20; % Initial temperature in °C
T = T0 * ones(num_elements, 1); % Initial temperature vector
% Thermal diffusivity (D = k / (rho * Cp))
D = 0.4e-4; % Thermal diffusivity in m^2/s
k = D * rho * Cp(T0); % Thermal conductivity in W/m°C
% FEM setup
dx = L / (num_elements – 1); % Spatial step size
dt = total_time / num_time_steps; % Time step size
% FEM matrices
A = zeros(num_elements, num_elements);
B = zeros(num_elements, 1);
% Assembly of FEM matrices
for i = 2:num_elements-1
A(i, i-1) = k / dx^2;
A(i, i) = -2 * k / dx^2;
A(i, i+1) = k / dx^2;
end
% Boundary conditions
A(1, 1) = 1;
A(1, 2) = 0;
A(end, end) = 1;
A(end, end-1) = 0;
% Time-stepping solution
T_history = zeros(num_elements, num_time_steps);
T_history(:, 1) = T;
for n = 1:num_time_steps-1
B(2:end-1) = alpha * I0 * exp(-alpha * x(2:end-1)) * (1 – R);
B(end) = T0; % Bottom boundary condition (fixed temperature)
T = T + dt * (A * T + B);
T(1) = T0; % surface boundary condition
T_history(:, n+1) = T;
end
% Plotting the results
figure;
hold on;
plot(t, T_history(1, :), ‘r’, ‘DisplayName’, ‘Surface’);
plot(t, T_history(find(x >= 1e-6, 1), :), ‘g’, ‘DisplayName’, ‘1 mum’);
plot(t, T_history(find(x >= 5e-6, 1), :), ‘b’, ‘DisplayName’, ‘5 mum’);
xlabel(‘Time (s)’);
ylabel(‘Temperature (°C)’);
legend;
title(‘Temperature profiles at different depths’);
hold off; finite element method MATLAB Answers — New Questions
Visualozing Attention for Sequence Data in the Frequency domain
I have trouble finding out how i can map my attention weights onto my input data.
My input data is in a 512*1 Cell, it represents a vibration in the frequency-domain, after going through different layers (mainly 2 CNN and 2 Bi-GRU), i have a high level representation of it(480*1), that enters a self attention layer.
I am able to extract the attention weights (256*1), but I am unsure on how to map them to my input sequence, am i able to just upscale the attention vector and overlay it onto my input?
I’ve added a screenshots of the model structure, to help you understand the problem.
The whole problem is further illustrated in this research paper.
I would be grateful for anyone, who can help me understand how I need to proceed.I have trouble finding out how i can map my attention weights onto my input data.
My input data is in a 512*1 Cell, it represents a vibration in the frequency-domain, after going through different layers (mainly 2 CNN and 2 Bi-GRU), i have a high level representation of it(480*1), that enters a self attention layer.
I am able to extract the attention weights (256*1), but I am unsure on how to map them to my input sequence, am i able to just upscale the attention vector and overlay it onto my input?
I’ve added a screenshots of the model structure, to help you understand the problem.
The whole problem is further illustrated in this research paper.
I would be grateful for anyone, who can help me understand how I need to proceed. I have trouble finding out how i can map my attention weights onto my input data.
My input data is in a 512*1 Cell, it represents a vibration in the frequency-domain, after going through different layers (mainly 2 CNN and 2 Bi-GRU), i have a high level representation of it(480*1), that enters a self attention layer.
I am able to extract the attention weights (256*1), but I am unsure on how to map them to my input sequence, am i able to just upscale the attention vector and overlay it onto my input?
I’ve added a screenshots of the model structure, to help you understand the problem.
The whole problem is further illustrated in this research paper.
I would be grateful for anyone, who can help me understand how I need to proceed. machine learning, time series MATLAB Answers — New Questions
WindowButtonDownFcn vs zoom or pan
In my figure I have some little images; I’ve implemented WindowButtonDownFcn so when I click on an image, I do something different according to the image selected
The cursor position is checked with WindowButtonMotionFcn
Practically, every little image simulates a button with its callback function. I do this because the graphical aspect of my figure is better, and I can have a ‘button’ of different shape instead of the square or rectangular button shape. Moreover, I don’t have the button outline.
Im my figure I have also an axis, used to plot data.
When I activate the zoom or the panning, the WindowButtonDownFcn function doesn’t work, my ‘buttons’ don’t work anymore until I deactivate the zoom or the pan.
This behaviour there is also if I set the zoom (or panning) on programmatically.
Is there a way to avoid this behaviour? I need the WindowButtonDownFcn ALWAYS working.
Thank youIn my figure I have some little images; I’ve implemented WindowButtonDownFcn so when I click on an image, I do something different according to the image selected
The cursor position is checked with WindowButtonMotionFcn
Practically, every little image simulates a button with its callback function. I do this because the graphical aspect of my figure is better, and I can have a ‘button’ of different shape instead of the square or rectangular button shape. Moreover, I don’t have the button outline.
Im my figure I have also an axis, used to plot data.
When I activate the zoom or the panning, the WindowButtonDownFcn function doesn’t work, my ‘buttons’ don’t work anymore until I deactivate the zoom or the pan.
This behaviour there is also if I set the zoom (or panning) on programmatically.
Is there a way to avoid this behaviour? I need the WindowButtonDownFcn ALWAYS working.
Thank you In my figure I have some little images; I’ve implemented WindowButtonDownFcn so when I click on an image, I do something different according to the image selected
The cursor position is checked with WindowButtonMotionFcn
Practically, every little image simulates a button with its callback function. I do this because the graphical aspect of my figure is better, and I can have a ‘button’ of different shape instead of the square or rectangular button shape. Moreover, I don’t have the button outline.
Im my figure I have also an axis, used to plot data.
When I activate the zoom or the panning, the WindowButtonDownFcn function doesn’t work, my ‘buttons’ don’t work anymore until I deactivate the zoom or the pan.
This behaviour there is also if I set the zoom (or panning) on programmatically.
Is there a way to avoid this behaviour? I need the WindowButtonDownFcn ALWAYS working.
Thank you windowbuttondownfcn MATLAB Answers — New Questions
How to buy MATLAB license in Ukraine (2023)?
Dear Sirs,
I would like to buy MATLAB for the company in Ukraine.
But I can’t do that because Mathworks representer in Ukraine is russia.
Could you please help me to buy license officially?
Best wishes,
OlegDear Sirs,
I would like to buy MATLAB for the company in Ukraine.
But I can’t do that because Mathworks representer in Ukraine is russia.
Could you please help me to buy license officially?
Best wishes,
Oleg Dear Sirs,
I would like to buy MATLAB for the company in Ukraine.
But I can’t do that because Mathworks representer in Ukraine is russia.
Could you please help me to buy license officially?
Best wishes,
Oleg license purchase issue MATLAB Answers — New Questions
How to make the colorbar/colormap with colors the same as ANSYS in Matlab?
In ANSYS, when there is zero deflection, the color is blue. For maximum negative and maximum positive, red is shown. In matlab, when there is zero deflection, the color is green. For maximum positive deflection the color is red and for maximum negative deflection the color is blue. How to configure Matlab to display the same colorbar as Ansys?
See the difference between the figures:
Matlab:
Ansys:
Thank you!In ANSYS, when there is zero deflection, the color is blue. For maximum negative and maximum positive, red is shown. In matlab, when there is zero deflection, the color is green. For maximum positive deflection the color is red and for maximum negative deflection the color is blue. How to configure Matlab to display the same colorbar as Ansys?
See the difference between the figures:
Matlab:
Ansys:
Thank you! In ANSYS, when there is zero deflection, the color is blue. For maximum negative and maximum positive, red is shown. In matlab, when there is zero deflection, the color is green. For maximum positive deflection the color is red and for maximum negative deflection the color is blue. How to configure Matlab to display the same colorbar as Ansys?
See the difference between the figures:
Matlab:
Ansys:
Thank you! colormap, color, surface, contour, 3d plots, plot MATLAB Answers — New Questions
Error while importing Google Satellite image into Roadrunner
I have exported a Google Satellite image from QGIS (as a GeoTIFF file), however, when I try to import it into Roadrunner, the bounding box appears but the image doesn’t, and an error (visible in the attached image) appears in the output. How to solve this?I have exported a Google Satellite image from QGIS (as a GeoTIFF file), however, when I try to import it into Roadrunner, the bounding box appears but the image doesn’t, and an error (visible in the attached image) appears in the output. How to solve this? I have exported a Google Satellite image from QGIS (as a GeoTIFF file), however, when I try to import it into Roadrunner, the bounding box appears but the image doesn’t, and an error (visible in the attached image) appears in the output. How to solve this? google satellite, import MATLAB Answers — New Questions