Tag Archives: matlab
Processing 5 input of matrices into a fuzzy logic system
Sir Arkadiy Turevskiy,
I read your answer about ‘Processing a list of inputs into a fuzzy logic system. I have a similar question, I want to process 5 input matrices (207*216) to take 1 output matrices (207*216). I have five separate matrices text file loaded in workspace(input1=slope_text, input2=jeo_text, input3=pop_text, input4=land_text, input5=stream_text)
[System]
Name=’Suitability2′
Type=’mamdani’
Version=2.0
NumInputs=5
NumOutputs=1
NumRules=108
AndMethod=’min’
OrMethod=’max’
ImpMethod=’min’
AggMethod=’max’
DefuzzMethod=’centroid’
[Input1]
Name=’EĞİM’
Range=[0 10]
NumMFs=3
MF1=’very_suitable’:’trapmf’,[-4.5 -0.5 2 5]
MF2=’moderately_suitable’:’trapmf’,[2 5 7 10]
MF3=’unsuitable’:’trapmf’,[7 10 11 40]
[Input2]
Name=’JEOLOJİ’
Range=[0 10]
NumMFs=2
MF1=’suitable’:’trapmf’,[4 8 10 13.75]
MF2=’unsuitable’:’trapmf’,[-4.5 -2 1 2]
[Input3]
Name=’NÜFUS’
Range=[0 98399]
NumMFs=3
MF1=’LOW’:’trimf’,[0 9976 25470]
MF2=’HIGH’:’trimf’,[72460 98400 1000000]
MF3=’medium’:’trimf’,[25470 46380 72460]
[Input4]
Name=’ARAZİ_KULLANIMI’
Range=[0 10]
NumMFs=2
MF1=’Unsuitable’:’trimf’,[0 0 6]
MF2=’Suitable’:’trimf’,[6 10 10]
[Input5]
Name=’YÜZEYSEL_AKIŞ’
Range=[0 10]
NumMFs=3
MF1=’low’:’trimf’,[1 2 3]
MF2=’high’:’trimf’,[5 6 7]
MF3=’medium’:’trimf’,[3 4 5]
[Output1]
Name=’UYGUNLUK_DEĞERİ’
Range=[0 100]
NumMFs=3
MF1=’POOR’:’trapmf’,[-4.46 0 10 40]
MF2=’GOOD’:’trimf’,[25 50 75]
MF3=’EXCELLENT’:’trapmf’,[60 90 100 100]Sir Arkadiy Turevskiy,
I read your answer about ‘Processing a list of inputs into a fuzzy logic system. I have a similar question, I want to process 5 input matrices (207*216) to take 1 output matrices (207*216). I have five separate matrices text file loaded in workspace(input1=slope_text, input2=jeo_text, input3=pop_text, input4=land_text, input5=stream_text)
[System]
Name=’Suitability2′
Type=’mamdani’
Version=2.0
NumInputs=5
NumOutputs=1
NumRules=108
AndMethod=’min’
OrMethod=’max’
ImpMethod=’min’
AggMethod=’max’
DefuzzMethod=’centroid’
[Input1]
Name=’EĞİM’
Range=[0 10]
NumMFs=3
MF1=’very_suitable’:’trapmf’,[-4.5 -0.5 2 5]
MF2=’moderately_suitable’:’trapmf’,[2 5 7 10]
MF3=’unsuitable’:’trapmf’,[7 10 11 40]
[Input2]
Name=’JEOLOJİ’
Range=[0 10]
NumMFs=2
MF1=’suitable’:’trapmf’,[4 8 10 13.75]
MF2=’unsuitable’:’trapmf’,[-4.5 -2 1 2]
[Input3]
Name=’NÜFUS’
Range=[0 98399]
NumMFs=3
MF1=’LOW’:’trimf’,[0 9976 25470]
MF2=’HIGH’:’trimf’,[72460 98400 1000000]
MF3=’medium’:’trimf’,[25470 46380 72460]
[Input4]
Name=’ARAZİ_KULLANIMI’
Range=[0 10]
NumMFs=2
MF1=’Unsuitable’:’trimf’,[0 0 6]
MF2=’Suitable’:’trimf’,[6 10 10]
[Input5]
Name=’YÜZEYSEL_AKIŞ’
Range=[0 10]
NumMFs=3
MF1=’low’:’trimf’,[1 2 3]
MF2=’high’:’trimf’,[5 6 7]
MF3=’medium’:’trimf’,[3 4 5]
[Output1]
Name=’UYGUNLUK_DEĞERİ’
Range=[0 100]
NumMFs=3
MF1=’POOR’:’trapmf’,[-4.46 0 10 40]
MF2=’GOOD’:’trimf’,[25 50 75]
MF3=’EXCELLENT’:’trapmf’,[60 90 100 100] Sir Arkadiy Turevskiy,
I read your answer about ‘Processing a list of inputs into a fuzzy logic system. I have a similar question, I want to process 5 input matrices (207*216) to take 1 output matrices (207*216). I have five separate matrices text file loaded in workspace(input1=slope_text, input2=jeo_text, input3=pop_text, input4=land_text, input5=stream_text)
[System]
Name=’Suitability2′
Type=’mamdani’
Version=2.0
NumInputs=5
NumOutputs=1
NumRules=108
AndMethod=’min’
OrMethod=’max’
ImpMethod=’min’
AggMethod=’max’
DefuzzMethod=’centroid’
[Input1]
Name=’EĞİM’
Range=[0 10]
NumMFs=3
MF1=’very_suitable’:’trapmf’,[-4.5 -0.5 2 5]
MF2=’moderately_suitable’:’trapmf’,[2 5 7 10]
MF3=’unsuitable’:’trapmf’,[7 10 11 40]
[Input2]
Name=’JEOLOJİ’
Range=[0 10]
NumMFs=2
MF1=’suitable’:’trapmf’,[4 8 10 13.75]
MF2=’unsuitable’:’trapmf’,[-4.5 -2 1 2]
[Input3]
Name=’NÜFUS’
Range=[0 98399]
NumMFs=3
MF1=’LOW’:’trimf’,[0 9976 25470]
MF2=’HIGH’:’trimf’,[72460 98400 1000000]
MF3=’medium’:’trimf’,[25470 46380 72460]
[Input4]
Name=’ARAZİ_KULLANIMI’
Range=[0 10]
NumMFs=2
MF1=’Unsuitable’:’trimf’,[0 0 6]
MF2=’Suitable’:’trimf’,[6 10 10]
[Input5]
Name=’YÜZEYSEL_AKIŞ’
Range=[0 10]
NumMFs=3
MF1=’low’:’trimf’,[1 2 3]
MF2=’high’:’trimf’,[5 6 7]
MF3=’medium’:’trimf’,[3 4 5]
[Output1]
Name=’UYGUNLUK_DEĞERİ’
Range=[0 100]
NumMFs=3
MF1=’POOR’:’trapmf’,[-4.46 0 10 40]
MF2=’GOOD’:’trimf’,[25 50 75]
MF3=’EXCELLENT’:’trapmf’,[60 90 100 100] fuzzy logic MATLAB Answers — New Questions
Solving ODE system with a constraint/boundary condition
Hello,
I am trying to simulate a chemical reaction in a tubular reactor. The reaction is in this form: A -> B + 6 C.
The reaction is a gas phase reaction and the reaction rate is a function of the partial pressures of the three components. I solved the mass balances for steady state (and some other assumtions) and came up with these equations:
I implemented them as an ODE system and want to solve this system via ode45. The code runs without an error but the solution does not fulfill the physical boundary condition, that the sum of all partial pressure has to be the system pressure at all times, or at all positions.
Is there any way to implement a sort of boundary condition, which can be solved by ode45?
See my code below. Please consider that the values for the parameters are arbitrary.
%% Definition of constant parameters
d = 0.028; % tube diameter [m]
length = 0.84; % tube length [m]
A = pi()/4*d^2; % Area [m^2]
V_reactor = A*length; % Reaction volume [m^3]
m_kat = 0.3; % catalyst mass [kg]
rho_packing = m_kat/(V_reactor)*1000; % catalyst density [kg m^-3]
T_shell = 330; % Reaction temperature [°C]
T_shell = T_shell+273.15; % Reaction temperature [K]
p = 4; % reaction pressure [bara]
V_in = 5/60; %inlet stream [m^3 s^-1]
v_z = V_in/A; % velocity [m s^-1]
R = 8.314; % J mol^-1 K^-1
%Starting partial pressures
p_B_in = 1e-4;
p_C_in = 1e-4;
p_A_in = p-p_B_in-p_C_in;
T_in = T_shell;
%Reaction parameters
ReactionRate.k0 = 150;
ReactionRate.EA = 100000;
ReactionRate.a = -0.5;
ReactionRate.m = 1;
ReactionRate.n = -0.5;
%% Calculation of equilibrium constant
eq = @(p,T)(exp((0.06206+p.*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))))./(1+exp((0.06206+p*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))));
K_eq_function = @(p,T)((1-eq(p,T))/(eq(p,T)));
K_eq = K_eq_function(p,T_shell);
% Solving ODE system
dz = 0.01; %step size
[z,c] = ode45(@(z, c) ODE_System(z, c, v_z, rho_packing, ReactionRate, R, T_shell, K_eq),0:dz:1,[p_B_in, p_A_in, p_C_in]);
%%Definition of ODE system
function [ddz] = ODE_System(~,c,v_z,rho_packing,ReactionRate,R,T_shell,K_eq)
ddz(1) = ((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/ (R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for B
ddz(2) = (-(R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for A
ddz(3) = 6*((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for C
ddz = ddz’;
end
The condition which has to be fulfilled at any time would be:
Thank you in advance.Hello,
I am trying to simulate a chemical reaction in a tubular reactor. The reaction is in this form: A -> B + 6 C.
The reaction is a gas phase reaction and the reaction rate is a function of the partial pressures of the three components. I solved the mass balances for steady state (and some other assumtions) and came up with these equations:
I implemented them as an ODE system and want to solve this system via ode45. The code runs without an error but the solution does not fulfill the physical boundary condition, that the sum of all partial pressure has to be the system pressure at all times, or at all positions.
Is there any way to implement a sort of boundary condition, which can be solved by ode45?
See my code below. Please consider that the values for the parameters are arbitrary.
%% Definition of constant parameters
d = 0.028; % tube diameter [m]
length = 0.84; % tube length [m]
A = pi()/4*d^2; % Area [m^2]
V_reactor = A*length; % Reaction volume [m^3]
m_kat = 0.3; % catalyst mass [kg]
rho_packing = m_kat/(V_reactor)*1000; % catalyst density [kg m^-3]
T_shell = 330; % Reaction temperature [°C]
T_shell = T_shell+273.15; % Reaction temperature [K]
p = 4; % reaction pressure [bara]
V_in = 5/60; %inlet stream [m^3 s^-1]
v_z = V_in/A; % velocity [m s^-1]
R = 8.314; % J mol^-1 K^-1
%Starting partial pressures
p_B_in = 1e-4;
p_C_in = 1e-4;
p_A_in = p-p_B_in-p_C_in;
T_in = T_shell;
%Reaction parameters
ReactionRate.k0 = 150;
ReactionRate.EA = 100000;
ReactionRate.a = -0.5;
ReactionRate.m = 1;
ReactionRate.n = -0.5;
%% Calculation of equilibrium constant
eq = @(p,T)(exp((0.06206+p.*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))))./(1+exp((0.06206+p*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))));
K_eq_function = @(p,T)((1-eq(p,T))/(eq(p,T)));
K_eq = K_eq_function(p,T_shell);
% Solving ODE system
dz = 0.01; %step size
[z,c] = ode45(@(z, c) ODE_System(z, c, v_z, rho_packing, ReactionRate, R, T_shell, K_eq),0:dz:1,[p_B_in, p_A_in, p_C_in]);
%%Definition of ODE system
function [ddz] = ODE_System(~,c,v_z,rho_packing,ReactionRate,R,T_shell,K_eq)
ddz(1) = ((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/ (R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for B
ddz(2) = (-(R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for A
ddz(3) = 6*((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for C
ddz = ddz’;
end
The condition which has to be fulfilled at any time would be:
Thank you in advance. Hello,
I am trying to simulate a chemical reaction in a tubular reactor. The reaction is in this form: A -> B + 6 C.
The reaction is a gas phase reaction and the reaction rate is a function of the partial pressures of the three components. I solved the mass balances for steady state (and some other assumtions) and came up with these equations:
I implemented them as an ODE system and want to solve this system via ode45. The code runs without an error but the solution does not fulfill the physical boundary condition, that the sum of all partial pressure has to be the system pressure at all times, or at all positions.
Is there any way to implement a sort of boundary condition, which can be solved by ode45?
See my code below. Please consider that the values for the parameters are arbitrary.
%% Definition of constant parameters
d = 0.028; % tube diameter [m]
length = 0.84; % tube length [m]
A = pi()/4*d^2; % Area [m^2]
V_reactor = A*length; % Reaction volume [m^3]
m_kat = 0.3; % catalyst mass [kg]
rho_packing = m_kat/(V_reactor)*1000; % catalyst density [kg m^-3]
T_shell = 330; % Reaction temperature [°C]
T_shell = T_shell+273.15; % Reaction temperature [K]
p = 4; % reaction pressure [bara]
V_in = 5/60; %inlet stream [m^3 s^-1]
v_z = V_in/A; % velocity [m s^-1]
R = 8.314; % J mol^-1 K^-1
%Starting partial pressures
p_B_in = 1e-4;
p_C_in = 1e-4;
p_A_in = p-p_B_in-p_C_in;
T_in = T_shell;
%Reaction parameters
ReactionRate.k0 = 150;
ReactionRate.EA = 100000;
ReactionRate.a = -0.5;
ReactionRate.m = 1;
ReactionRate.n = -0.5;
%% Calculation of equilibrium constant
eq = @(p,T)(exp((0.06206+p.*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))))./(1+exp((0.06206+p*0.00176).*((773.15-T)-(443.46876-99.02783.*log(p+5.73037)))));
K_eq_function = @(p,T)((1-eq(p,T))/(eq(p,T)));
K_eq = K_eq_function(p,T_shell);
% Solving ODE system
dz = 0.01; %step size
[z,c] = ode45(@(z, c) ODE_System(z, c, v_z, rho_packing, ReactionRate, R, T_shell, K_eq),0:dz:1,[p_B_in, p_A_in, p_C_in]);
%%Definition of ODE system
function [ddz] = ODE_System(~,c,v_z,rho_packing,ReactionRate,R,T_shell,K_eq)
ddz(1) = ((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/ (R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for B
ddz(2) = (-(R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for A
ddz(3) = 6*((R*T_shell)/v_z*rho_packing*(((c(3))^ReactionRate.a*ReactionRate.k0*exp(-ReactionRate.EA/(R*T_shell))*(c(2))^ReactionRate.m*(c(1))^ReactionRate.n*(1-(c(1)/(c(2)*K_eq)))))); % mass balance for C
ddz = ddz’;
end
The condition which has to be fulfilled at any time would be:
Thank you in advance. ode, ode45, boundary condition MATLAB Answers — New Questions
Write a string to hdf5 file with defined string length
I am trying to write a string to hdf5 file:
h5create(‘combo.hdf5′,’/description’,1,Datatype=’string’);
h5write(‘combo.hdf5′,’/description’,"this is the description");
When I read it out using h5disp, the result is:
Dataset ‘description’
Size: 1
MaxSize: 1
Datatype: H5T_STRING
String Length: variable
Padding: H5T_STR_NULLTERM
Character Set: H5T_CSET_UTF8
Character Type: H5T_C_S1
ChunkSize: []
Filters: none
FillValue: ”
Notice the String Length is denoted as ‘variable’. What if I want to define the length of this string (23 here), so it shows:
String Length: 23
Thank you very much!I am trying to write a string to hdf5 file:
h5create(‘combo.hdf5′,’/description’,1,Datatype=’string’);
h5write(‘combo.hdf5′,’/description’,"this is the description");
When I read it out using h5disp, the result is:
Dataset ‘description’
Size: 1
MaxSize: 1
Datatype: H5T_STRING
String Length: variable
Padding: H5T_STR_NULLTERM
Character Set: H5T_CSET_UTF8
Character Type: H5T_C_S1
ChunkSize: []
Filters: none
FillValue: ”
Notice the String Length is denoted as ‘variable’. What if I want to define the length of this string (23 here), so it shows:
String Length: 23
Thank you very much! I am trying to write a string to hdf5 file:
h5create(‘combo.hdf5′,’/description’,1,Datatype=’string’);
h5write(‘combo.hdf5′,’/description’,"this is the description");
When I read it out using h5disp, the result is:
Dataset ‘description’
Size: 1
MaxSize: 1
Datatype: H5T_STRING
String Length: variable
Padding: H5T_STR_NULLTERM
Character Set: H5T_CSET_UTF8
Character Type: H5T_C_S1
ChunkSize: []
Filters: none
FillValue: ”
Notice the String Length is denoted as ‘variable’. What if I want to define the length of this string (23 here), so it shows:
String Length: 23
Thank you very much! hdf5, string length, define MATLAB Answers — New Questions
error in envelope function
The envelope function always gives me an error when I enter the input ‘peaks’, whatever the data may be. The error that appears is this:
Error using findpeaks
Too many input arguments.
Error in envelope>envPeak (line 181)
[~,iPk] = findpeaks(double(x(:,chan)),’MinPeakDistance’,n);
Error in envelope (line 79)
[yupper, ylower] = envPeak(x,n);
I have looked at three different versions of Matlab and it gives me the error in all three.The envelope function always gives me an error when I enter the input ‘peaks’, whatever the data may be. The error that appears is this:
Error using findpeaks
Too many input arguments.
Error in envelope>envPeak (line 181)
[~,iPk] = findpeaks(double(x(:,chan)),’MinPeakDistance’,n);
Error in envelope (line 79)
[yupper, ylower] = envPeak(x,n);
I have looked at three different versions of Matlab and it gives me the error in all three. The envelope function always gives me an error when I enter the input ‘peaks’, whatever the data may be. The error that appears is this:
Error using findpeaks
Too many input arguments.
Error in envelope>envPeak (line 181)
[~,iPk] = findpeaks(double(x(:,chan)),’MinPeakDistance’,n);
Error in envelope (line 79)
[yupper, ylower] = envPeak(x,n);
I have looked at three different versions of Matlab and it gives me the error in all three. envelope signal MATLAB Answers — New Questions
How to generate C++ code from a *.fis file?
How do I generate C++ code from a *.fis file?How do I generate C++ code from a *.fis file? How do I generate C++ code from a *.fis file? code generation MATLAB Answers — New Questions
ASCII characters in code?
I have a little problem with the display of some characters in my matlab code. The header of data i read from a text file contains special characters, which i need to write down into my code. E.g. one column has the Name "T / °C". Now every time i close and reopen Matlab, the parts in my code are displayd like this: "T / �C". So everyday i have to replace all occurances of this character, and of course it is not the only character. Is there a way to solve this. I did not find any setting in the preferences.
Thank you!I have a little problem with the display of some characters in my matlab code. The header of data i read from a text file contains special characters, which i need to write down into my code. E.g. one column has the Name "T / °C". Now every time i close and reopen Matlab, the parts in my code are displayd like this: "T / �C". So everyday i have to replace all occurances of this character, and of course it is not the only character. Is there a way to solve this. I did not find any setting in the preferences.
Thank you! I have a little problem with the display of some characters in my matlab code. The header of data i read from a text file contains special characters, which i need to write down into my code. E.g. one column has the Name "T / °C". Now every time i close and reopen Matlab, the parts in my code are displayd like this: "T / �C". So everyday i have to replace all occurances of this character, and of course it is not the only character. Is there a way to solve this. I did not find any setting in the preferences.
Thank you! ascii character display MATLAB Answers — New Questions
how to generate {8,3} regular graphs for large number of vertices
hyperbolic latticeshyperbolic lattices hyperbolic lattices graph, matrices MATLAB Answers — New Questions
split Each Data store
How we can Split Each data store while training neural network with not disturbing the sequence of Images and labels so that it can train images and corresponding labels accordingly.
Thanks in advance.How we can Split Each data store while training neural network with not disturbing the sequence of Images and labels so that it can train images and corresponding labels accordingly.
Thanks in advance. How we can Split Each data store while training neural network with not disturbing the sequence of Images and labels so that it can train images and corresponding labels accordingly.
Thanks in advance. datastore, split, labels MATLAB Answers — New Questions
2d matrices with nearest hoppings (square lattice)
2d matrices2d matrices 2d matrices 2d matrics MATLAB Answers — New Questions
How to smooth the line curves in the plot?
I’m using the function "smooth" and ”abs” to smooth the line curve (I_para) but can’t acheive the smooth curves in the plot. I used the smooth function previously and got the curve smooth but this time it doesn’t work for my case. Please your help willl be appreciated. Thank you
clear, clc, close all
a_ref = 0.05;
Reff_ref = 20;
z_bottom = 1000:1000:4000;
FOV = [0.2, 0.5, 1, 2, 5, 10];
cloud = ‘Sub’;
for h = 1:length(z_bottom)
main_fig = figure(‘NumberTitle’, ‘off’, ‘Name’, [‘Height ‘, num2str(z_bottom(h)), ‘m’]);
Area = []; % for sort
COLOR = {‘r’, ‘g’, ‘b’, [0.8500 0.3250 0.0980], [0.4660 0.6740 0.1880], [0 0.4470 0.7410]};
ylim_max = 0;
for a = 0.01:0.01:a_ref
for r = 4:Reff_ref
clf(main_fig); % Clear the current figure
subplot(1, 1, 1); % Create subplot for all FOVs
hold on;
for f = 1:length(FOV)
Height = genHeight(z_bottom(h))’;
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/I0.mat’]);
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/Q0.mat’]);
I_para = abs(1/2 * (I0 + Q0));
I_per = abs(1/2 * (I0 – Q0));
% Plotting all FOV plots on a single figure for each cloud height
plot(Height, smooth(abs(sum(I_para, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineWidth’, 1.5);
hold on
plot(Height, smooth(abs(sum(I_per, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineStyle’, ‘–‘, ‘LineWidth’, 1.5);
title([‘Sub-adiabatic cloud, Height ‘, num2str(z_bottom(h)), ‘m’])
% Add annotation for polarized signals
if f == 1
annotation(‘textbox’, [0.15, 0.15, 0.1, 0.1], ‘String’, ‘P_{perp}’, ‘Color’, ‘k’, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
annotation(‘textbox’, [0.24, 0.5, 0.1, 0.1], ‘String’, ‘P_{midmid}’, ‘Color’, ‘k’, ‘LineStyle’, ‘–‘, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
end
Area = [Area, [z_bottom(h); FOV(f); pi * ((2.5 * cot(FOV(f) * 1e-3/2) + z_bottom(h)) * tan(FOV(f) * 1e-3/2))^2]];
% Calculate the maximum y-axis limit
ylim_max = max(ylim_max, max(sum(I_para, 2) .* Height.^2));
ylim_max = max(ylim_max, max(sum(I_per, 2) .* Height.^2));
end
hold off;
end
end
% Figure settings based on the data
zoom on
xlabel(‘Height of the cloud (m)’,’FontSize’,14,’FontWeight’,’normal’);
ylabel(‘Backscattering signal (Unit)’,’FontSize’,14,’FontWeight’,’normal’);
set(gca,’color’,’w’,’Fontsize’,12,’LineWidth’,1.5,’Fontweight’,’normal’);
set(gca,’box’,’off’,’Fontname’,’Arial’,’Fontsmoothing’,’on’);
% Convert y-axis to logarithmic scale
% set(gca, ‘YScale’, ‘log’);
% Define the offset for increasing x-axis limit
if h == 2
offset = 2; % Offset for h == 2
elseif h == 3
offset = 4; % Offset for h == 3
else
offset = 0; % No offset for other cases
end
% Set x-axis limits and ticks with a difference of 50 for all figures
xlim_min = z_bottom(h);
xlim_max = max(Height) + offset; % Adjusted xlim_max with an offset
% Adjust xticks for last tick visibility
if h == 1
xticks = 1000:50:(max(Height));
elseif h == 2
xticks = [2000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 2
elseif h == 3
xticks = [3000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 3
else
xticks = 4000:50:xlim_max;
end
set(gca,’xlim’,[xlim_min, xlim_max],’xtick’,xticks,’ylim’,[0 ylim_max],’ytick’,[0:0.02:ylim_max]);
set(gca,’xgrid’,’on’,’ygrid’,’on’,’gridcolor’,’k’);
% Create legend entries for each FOV value
legend_labels = cell(1, length(FOV) * 2); % Preallocate space for legend labels
for i = 1:length(FOV)
legend_labels{(i-1)*2+1} = [num2str(FOV(i)), ‘mrad’];
legend_labels{(i-1)*2+2} = [num2str(FOV(i)), ‘mrad’];
end
% Plot the legend entries in two rows
legend(legend_labels, ‘Location’, ‘NorthEast’, ‘NumColumns’, 3);
legend boxoff
endI’m using the function "smooth" and ”abs” to smooth the line curve (I_para) but can’t acheive the smooth curves in the plot. I used the smooth function previously and got the curve smooth but this time it doesn’t work for my case. Please your help willl be appreciated. Thank you
clear, clc, close all
a_ref = 0.05;
Reff_ref = 20;
z_bottom = 1000:1000:4000;
FOV = [0.2, 0.5, 1, 2, 5, 10];
cloud = ‘Sub’;
for h = 1:length(z_bottom)
main_fig = figure(‘NumberTitle’, ‘off’, ‘Name’, [‘Height ‘, num2str(z_bottom(h)), ‘m’]);
Area = []; % for sort
COLOR = {‘r’, ‘g’, ‘b’, [0.8500 0.3250 0.0980], [0.4660 0.6740 0.1880], [0 0.4470 0.7410]};
ylim_max = 0;
for a = 0.01:0.01:a_ref
for r = 4:Reff_ref
clf(main_fig); % Clear the current figure
subplot(1, 1, 1); % Create subplot for all FOVs
hold on;
for f = 1:length(FOV)
Height = genHeight(z_bottom(h))’;
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/I0.mat’]);
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/Q0.mat’]);
I_para = abs(1/2 * (I0 + Q0));
I_per = abs(1/2 * (I0 – Q0));
% Plotting all FOV plots on a single figure for each cloud height
plot(Height, smooth(abs(sum(I_para, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineWidth’, 1.5);
hold on
plot(Height, smooth(abs(sum(I_per, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineStyle’, ‘–‘, ‘LineWidth’, 1.5);
title([‘Sub-adiabatic cloud, Height ‘, num2str(z_bottom(h)), ‘m’])
% Add annotation for polarized signals
if f == 1
annotation(‘textbox’, [0.15, 0.15, 0.1, 0.1], ‘String’, ‘P_{perp}’, ‘Color’, ‘k’, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
annotation(‘textbox’, [0.24, 0.5, 0.1, 0.1], ‘String’, ‘P_{midmid}’, ‘Color’, ‘k’, ‘LineStyle’, ‘–‘, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
end
Area = [Area, [z_bottom(h); FOV(f); pi * ((2.5 * cot(FOV(f) * 1e-3/2) + z_bottom(h)) * tan(FOV(f) * 1e-3/2))^2]];
% Calculate the maximum y-axis limit
ylim_max = max(ylim_max, max(sum(I_para, 2) .* Height.^2));
ylim_max = max(ylim_max, max(sum(I_per, 2) .* Height.^2));
end
hold off;
end
end
% Figure settings based on the data
zoom on
xlabel(‘Height of the cloud (m)’,’FontSize’,14,’FontWeight’,’normal’);
ylabel(‘Backscattering signal (Unit)’,’FontSize’,14,’FontWeight’,’normal’);
set(gca,’color’,’w’,’Fontsize’,12,’LineWidth’,1.5,’Fontweight’,’normal’);
set(gca,’box’,’off’,’Fontname’,’Arial’,’Fontsmoothing’,’on’);
% Convert y-axis to logarithmic scale
% set(gca, ‘YScale’, ‘log’);
% Define the offset for increasing x-axis limit
if h == 2
offset = 2; % Offset for h == 2
elseif h == 3
offset = 4; % Offset for h == 3
else
offset = 0; % No offset for other cases
end
% Set x-axis limits and ticks with a difference of 50 for all figures
xlim_min = z_bottom(h);
xlim_max = max(Height) + offset; % Adjusted xlim_max with an offset
% Adjust xticks for last tick visibility
if h == 1
xticks = 1000:50:(max(Height));
elseif h == 2
xticks = [2000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 2
elseif h == 3
xticks = [3000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 3
else
xticks = 4000:50:xlim_max;
end
set(gca,’xlim’,[xlim_min, xlim_max],’xtick’,xticks,’ylim’,[0 ylim_max],’ytick’,[0:0.02:ylim_max]);
set(gca,’xgrid’,’on’,’ygrid’,’on’,’gridcolor’,’k’);
% Create legend entries for each FOV value
legend_labels = cell(1, length(FOV) * 2); % Preallocate space for legend labels
for i = 1:length(FOV)
legend_labels{(i-1)*2+1} = [num2str(FOV(i)), ‘mrad’];
legend_labels{(i-1)*2+2} = [num2str(FOV(i)), ‘mrad’];
end
% Plot the legend entries in two rows
legend(legend_labels, ‘Location’, ‘NorthEast’, ‘NumColumns’, 3);
legend boxoff
end I’m using the function "smooth" and ”abs” to smooth the line curve (I_para) but can’t acheive the smooth curves in the plot. I used the smooth function previously and got the curve smooth but this time it doesn’t work for my case. Please your help willl be appreciated. Thank you
clear, clc, close all
a_ref = 0.05;
Reff_ref = 20;
z_bottom = 1000:1000:4000;
FOV = [0.2, 0.5, 1, 2, 5, 10];
cloud = ‘Sub’;
for h = 1:length(z_bottom)
main_fig = figure(‘NumberTitle’, ‘off’, ‘Name’, [‘Height ‘, num2str(z_bottom(h)), ‘m’]);
Area = []; % for sort
COLOR = {‘r’, ‘g’, ‘b’, [0.8500 0.3250 0.0980], [0.4660 0.6740 0.1880], [0 0.4470 0.7410]};
ylim_max = 0;
for a = 0.01:0.01:a_ref
for r = 4:Reff_ref
clf(main_fig); % Clear the current figure
subplot(1, 1, 1); % Create subplot for all FOVs
hold on;
for f = 1:length(FOV)
Height = genHeight(z_bottom(h))’;
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/I0.mat’]);
load([‘MCdatabase_’, cloud, ‘/’, num2str(a), ‘-‘, num2str(r), ‘um/’, num2str(z_bottom(h)), ‘m-‘, num2str(FOV(f)), ‘mrad/Q0.mat’]);
I_para = abs(1/2 * (I0 + Q0));
I_per = abs(1/2 * (I0 – Q0));
% Plotting all FOV plots on a single figure for each cloud height
plot(Height, smooth(abs(sum(I_para, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineWidth’, 1.5);
hold on
plot(Height, smooth(abs(sum(I_per, 2))) .* Height.^2, ‘Color’, COLOR{f}, ‘LineStyle’, ‘–‘, ‘LineWidth’, 1.5);
title([‘Sub-adiabatic cloud, Height ‘, num2str(z_bottom(h)), ‘m’])
% Add annotation for polarized signals
if f == 1
annotation(‘textbox’, [0.15, 0.15, 0.1, 0.1], ‘String’, ‘P_{perp}’, ‘Color’, ‘k’, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
annotation(‘textbox’, [0.24, 0.5, 0.1, 0.1], ‘String’, ‘P_{midmid}’, ‘Color’, ‘k’, ‘LineStyle’, ‘–‘, ‘EdgeColor’, ‘none’, ‘FontWeight’, ‘bold’, ‘FontSize’, 12);
end
Area = [Area, [z_bottom(h); FOV(f); pi * ((2.5 * cot(FOV(f) * 1e-3/2) + z_bottom(h)) * tan(FOV(f) * 1e-3/2))^2]];
% Calculate the maximum y-axis limit
ylim_max = max(ylim_max, max(sum(I_para, 2) .* Height.^2));
ylim_max = max(ylim_max, max(sum(I_per, 2) .* Height.^2));
end
hold off;
end
end
% Figure settings based on the data
zoom on
xlabel(‘Height of the cloud (m)’,’FontSize’,14,’FontWeight’,’normal’);
ylabel(‘Backscattering signal (Unit)’,’FontSize’,14,’FontWeight’,’normal’);
set(gca,’color’,’w’,’Fontsize’,12,’LineWidth’,1.5,’Fontweight’,’normal’);
set(gca,’box’,’off’,’Fontname’,’Arial’,’Fontsmoothing’,’on’);
% Convert y-axis to logarithmic scale
% set(gca, ‘YScale’, ‘log’);
% Define the offset for increasing x-axis limit
if h == 2
offset = 2; % Offset for h == 2
elseif h == 3
offset = 4; % Offset for h == 3
else
offset = 0; % No offset for other cases
end
% Set x-axis limits and ticks with a difference of 50 for all figures
xlim_min = z_bottom(h);
xlim_max = max(Height) + offset; % Adjusted xlim_max with an offset
% Adjust xticks for last tick visibility
if h == 1
xticks = 1000:50:(max(Height));
elseif h == 2
xticks = [2000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 2
elseif h == 3
xticks = [3000:50:(max(Height) + offset)]; % Corrected x-ticks for Figure 3
else
xticks = 4000:50:xlim_max;
end
set(gca,’xlim’,[xlim_min, xlim_max],’xtick’,xticks,’ylim’,[0 ylim_max],’ytick’,[0:0.02:ylim_max]);
set(gca,’xgrid’,’on’,’ygrid’,’on’,’gridcolor’,’k’);
% Create legend entries for each FOV value
legend_labels = cell(1, length(FOV) * 2); % Preallocate space for legend labels
for i = 1:length(FOV)
legend_labels{(i-1)*2+1} = [num2str(FOV(i)), ‘mrad’];
legend_labels{(i-1)*2+2} = [num2str(FOV(i)), ‘mrad’];
end
% Plot the legend entries in two rows
legend(legend_labels, ‘Location’, ‘NorthEast’, ‘NumColumns’, 3);
legend boxoff
end smooth_curve MATLAB Answers — New Questions
Battery Builder to Simulink Model Perfromance Check
I have created a Prismatic battery pack from Battery Builder App, after that i have got 2 blocks in simulink as simscape blocks. After that i want to find the performance,SOC, CCCV, Input/output Power with respect to load,speed or terrain and power losses due to resistance, cell behaviour and few more if you suggest. But I am not able to understand the conversion from simscape physical model to simulink model. if you could provide me any suggestion will be helpful.I have created a Prismatic battery pack from Battery Builder App, after that i have got 2 blocks in simulink as simscape blocks. After that i want to find the performance,SOC, CCCV, Input/output Power with respect to load,speed or terrain and power losses due to resistance, cell behaviour and few more if you suggest. But I am not able to understand the conversion from simscape physical model to simulink model. if you could provide me any suggestion will be helpful. I have created a Prismatic battery pack from Battery Builder App, after that i have got 2 blocks in simulink as simscape blocks. After that i want to find the performance,SOC, CCCV, Input/output Power with respect to load,speed or terrain and power losses due to resistance, cell behaviour and few more if you suggest. But I am not able to understand the conversion from simscape physical model to simulink model. if you could provide me any suggestion will be helpful. simulink, simscape, battery builder, battery, performance, heavy load vehicle MATLAB Answers — New Questions
Hi, I need help with coding for large expressions with integrations as given in the image.
I m kind of new to Matlab with average level expertise. Can anybody pls provide code for these or similar equations and then I modify according to these. I have used the integral function in coding for these but all I get is an empty graph with no trend. and NaN. Your guidance/help will be highly appreciated. Thanks
The PrL (u) is the LoS probability function, which is
and theta is
Another equation is
,, Again the PL(v) is the LoS probabilityI m kind of new to Matlab with average level expertise. Can anybody pls provide code for these or similar equations and then I modify according to these. I have used the integral function in coding for these but all I get is an empty graph with no trend. and NaN. Your guidance/help will be highly appreciated. Thanks
The PrL (u) is the LoS probability function, which is
and theta is
Another equation is
,, Again the PL(v) is the LoS probability I m kind of new to Matlab with average level expertise. Can anybody pls provide code for these or similar equations and then I modify according to these. I have used the integral function in coding for these but all I get is an empty graph with no trend. and NaN. Your guidance/help will be highly appreciated. Thanks
The PrL (u) is the LoS probability function, which is
and theta is
Another equation is
,, Again the PL(v) is the LoS probability wireless communications, integral, numerical integration, integration, coverage probability, statistics MATLAB Answers — New Questions
Equivalent of passing structure to “varargin” for the new “Function Argument Validation” introduced in 2019b
I have a compatibility question about the new method of adding name-value pairs to functions introduced in MATLAB 2019b as discussed on this help page. I think the new argument validation tools are very powerful and easier to use, but there’s a special use case for varargin and inputParser that I can’t get to work.
Background
In previous versions of MATLAB, I’ve used varargin with inputparser to enable name-value pairs in functions. I only used these as optional arguments, so they were always at the end of my function signature and I only used addParameters. With inputParser, I am able to pass either the variables in, or a structure with field names that correspond to the variables. For the sample function:
function demo(varargin)
% Parse the input.
p = inputParser;
p.addParameter(‘param1’,1.5);
p.addParameter(‘param2’,-8);
p.addParameter(‘param2’,17);
p.parse(varargin{:});
% Rest of function.
…
end
I could call it like this:
demo(‘param1′,7,’param2′,8,’param3’,9);
Or, to make the function call more compact, I could call it like this:
S.param1 = 7;
S.param2 = 8;
S.param3 = 9;
demo(S);
With the second method, inputParser would interpret the fields of the structure as the name-value pairs.
Question
With the new function argument validation tools, I can eliminate the need for varargin and inputparser and use the built in tools:
function demo(NameValueArgs)
arguments
NameValueArgs.param1 = 1.5;
NameValueArgs.param2 = -8;
NameValueArgs.param3 = 17;
end
% Rest of function.
…
end
However, I can’t pass a structure with the name value pairs like I can with varargin and inputparser, it produces an error.
Is there a way to get the "old" functionality back using the new arguments feature of functions? For functions with many name-value pairs, the function calls can get very long otherwise.
Thanks in advance!
-NateI have a compatibility question about the new method of adding name-value pairs to functions introduced in MATLAB 2019b as discussed on this help page. I think the new argument validation tools are very powerful and easier to use, but there’s a special use case for varargin and inputParser that I can’t get to work.
Background
In previous versions of MATLAB, I’ve used varargin with inputparser to enable name-value pairs in functions. I only used these as optional arguments, so they were always at the end of my function signature and I only used addParameters. With inputParser, I am able to pass either the variables in, or a structure with field names that correspond to the variables. For the sample function:
function demo(varargin)
% Parse the input.
p = inputParser;
p.addParameter(‘param1’,1.5);
p.addParameter(‘param2’,-8);
p.addParameter(‘param2’,17);
p.parse(varargin{:});
% Rest of function.
…
end
I could call it like this:
demo(‘param1′,7,’param2′,8,’param3’,9);
Or, to make the function call more compact, I could call it like this:
S.param1 = 7;
S.param2 = 8;
S.param3 = 9;
demo(S);
With the second method, inputParser would interpret the fields of the structure as the name-value pairs.
Question
With the new function argument validation tools, I can eliminate the need for varargin and inputparser and use the built in tools:
function demo(NameValueArgs)
arguments
NameValueArgs.param1 = 1.5;
NameValueArgs.param2 = -8;
NameValueArgs.param3 = 17;
end
% Rest of function.
…
end
However, I can’t pass a structure with the name value pairs like I can with varargin and inputparser, it produces an error.
Is there a way to get the "old" functionality back using the new arguments feature of functions? For functions with many name-value pairs, the function calls can get very long otherwise.
Thanks in advance!
-Nate I have a compatibility question about the new method of adding name-value pairs to functions introduced in MATLAB 2019b as discussed on this help page. I think the new argument validation tools are very powerful and easier to use, but there’s a special use case for varargin and inputParser that I can’t get to work.
Background
In previous versions of MATLAB, I’ve used varargin with inputparser to enable name-value pairs in functions. I only used these as optional arguments, so they were always at the end of my function signature and I only used addParameters. With inputParser, I am able to pass either the variables in, or a structure with field names that correspond to the variables. For the sample function:
function demo(varargin)
% Parse the input.
p = inputParser;
p.addParameter(‘param1’,1.5);
p.addParameter(‘param2’,-8);
p.addParameter(‘param2’,17);
p.parse(varargin{:});
% Rest of function.
…
end
I could call it like this:
demo(‘param1′,7,’param2′,8,’param3’,9);
Or, to make the function call more compact, I could call it like this:
S.param1 = 7;
S.param2 = 8;
S.param3 = 9;
demo(S);
With the second method, inputParser would interpret the fields of the structure as the name-value pairs.
Question
With the new function argument validation tools, I can eliminate the need for varargin and inputparser and use the built in tools:
function demo(NameValueArgs)
arguments
NameValueArgs.param1 = 1.5;
NameValueArgs.param2 = -8;
NameValueArgs.param3 = 17;
end
% Rest of function.
…
end
However, I can’t pass a structure with the name value pairs like I can with varargin and inputparser, it produces an error.
Is there a way to get the "old" functionality back using the new arguments feature of functions? For functions with many name-value pairs, the function calls can get very long otherwise.
Thanks in advance!
-Nate inputparser, varargin, function argument validation, arguments MATLAB Answers — New Questions
Multiple MPC Controllers: How to set the initial values of the manipulated variables?
Hello,
i have 12 MPC-Controllers, each one with manipulated variables:
u1: pump speed
u2 valve opening
The output variable of the system is temperature.
I am switching between the MPCs using the Multiple MPC Controllers block (https://www.mathworks.com/help/mpc/ref/multiplempccontrollers.html)
The manipulated variables should start with inital values of u1 = 2500 RPM and u2 = 0.5 mm, but both start with 0.
Any idea how to do change the initial values of the manipulated variables?
Thanks!
MartinHello,
i have 12 MPC-Controllers, each one with manipulated variables:
u1: pump speed
u2 valve opening
The output variable of the system is temperature.
I am switching between the MPCs using the Multiple MPC Controllers block (https://www.mathworks.com/help/mpc/ref/multiplempccontrollers.html)
The manipulated variables should start with inital values of u1 = 2500 RPM and u2 = 0.5 mm, but both start with 0.
Any idea how to do change the initial values of the manipulated variables?
Thanks!
Martin Hello,
i have 12 MPC-Controllers, each one with manipulated variables:
u1: pump speed
u2 valve opening
The output variable of the system is temperature.
I am switching between the MPCs using the Multiple MPC Controllers block (https://www.mathworks.com/help/mpc/ref/multiplempccontrollers.html)
The manipulated variables should start with inital values of u1 = 2500 RPM and u2 = 0.5 mm, but both start with 0.
Any idea how to do change the initial values of the manipulated variables?
Thanks!
Martin multiple mpc controllers MATLAB Answers — New Questions
How to implement importing data from csv file in optimization algorithm?
Hi,
I have attached the code used for PSO algorithm for 3D box packing. I am finding difficulty to modify the code to integrate with importing data from ‘presents.csv’ and also provide best solution for arrangements of the boxes on the grid, for example as ’50 – GA (10-Apr-2024 03.48.47).csv’.
please do share some ideas on this. thanks.
pso.m
%
% Copyright (c) 2015, Yarpiz (www.yarpiz.com)
% All rights reserved. Please read the "license.txt" for license terms.
%
% Project Code: YPAP105
% Project Title: Solving Bin Packing Problem using PSO, FA and IWO
% Publisher: Yarpiz (www.yarpiz.com)
%
% Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team)
%
% Contact Info: sm.kalami@gmail.com, info@yarpiz.com
%
clc;
clear;
close all;
%% Problem Definition
model = CreateModel(); % Create Bin Packing Model
CostFunction = @(x) BinPackingCost(x, model); % Objective Function
nVar = 2*model.n-1; % Number of Decision Variables
VarSize = [1 nVar]; % Decision Variables Matrix Size
VarMin = 0; % Lower Bound of Decision Variables
VarMax = 1; % Upper Bound of Decision Variables
%% PSO Parameters
MaxIt=1000; % Maximum Number of Iterations
nPop=50; % Population Size (Swarm Size)
% PSO Parameters
w=1; % Inertia Weight
wdamp=0.99; % Inertia Weight Damping Ratio
c1=1.5; % Personal Learning Coefficient
c2=2.0; % Global Learning Coefficient
% If you would like to use Constriction Coefficients for PSO,
% uncomment the following block and comment the above set of parameters.
% % Constriction Coefficients
% phi1=2.05;
% phi2=2.05;
% phi=phi1+phi2;
% chi=2/(phi-2+sqrt(phi^2-4*phi));
% w=chi; % Inertia Weight
% wdamp=1; % Inertia Weight Damping Ratio
% c1=chi*phi1; % Personal Learning Coefficient
% c2=chi*phi2; % Global Learning Coefficient
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
nParticleMutation = 2; % Number of Mutations Performed on Each Particle
nGlobalBestMutation = 5; % Number of Mutations Performed on Global Best
%% Initialization
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Sol=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
empty_particle.Best.Sol=[];
particle=repmat(empty_particle,nPop,1);
GlobalBest.Cost=inf;
for i=1:nPop
% Initialize Position
particle(i).Position=unifrnd(VarMin,VarMax,VarSize);
% Initialize Velocity
particle(i).Velocity=zeros(VarSize);
% Evaluation
[particle(i).Cost, particle(i).Sol]=CostFunction(particle(i).Position);
% Update Personal Best
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
BestCost=zeros(MaxIt,1);
%% PSO Main Loop
for it=1:MaxIt
for i=1:nPop
% Update Velocity
particle(i).Velocity = w*particle(i).Velocity …
+c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) …
+c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);
% Apply Velocity Limits
particle(i).Velocity = max(particle(i).Velocity,VelMin);
particle(i).Velocity = min(particle(i).Velocity,VelMax);
% Update Position
particle(i).Position = particle(i).Position + particle(i).Velocity;
% Velocity Mirror Effect
IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);
particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);
% Apply Position Limits
particle(i).Position = max(particle(i).Position,VarMin);
particle(i).Position = min(particle(i).Position,VarMax);
% Evaluation
[particle(i).Cost, particle(i).Sol] = CostFunction(particle(i).Position);
% Perform Mutation
for j=1:nParticleMutation
NewParticle = particle(i);
NewParticle.Position = Mutate(particle(i).Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= particle(i).Cost
particle(i) = NewParticle;
end
end
% Update Personal Best
if particle(i).Cost<particle(i).Best.Cost
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
end
% Perform Mutation on Global Best
for i=1:nGlobalBestMutation
NewParticle = GlobalBest;
NewParticle.Position = Mutate(GlobalBest.Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= GlobalBest.Cost
GlobalBest = NewParticle;
end
end
BestCost(it)=GlobalBest.Cost;
disp([‘Iteration ‘ num2str(it) ‘: Best Cost = ‘ num2str(BestCost(it))]);
w=w*wdamp;
end
BestSol = GlobalBest;
%% Results
figure;
plot(BestCost,’LineWidth’,2);
xlabel(‘Iteration’);
ylabel(‘Best Cost’);
grid on;Hi,
I have attached the code used for PSO algorithm for 3D box packing. I am finding difficulty to modify the code to integrate with importing data from ‘presents.csv’ and also provide best solution for arrangements of the boxes on the grid, for example as ’50 – GA (10-Apr-2024 03.48.47).csv’.
please do share some ideas on this. thanks.
pso.m
%
% Copyright (c) 2015, Yarpiz (www.yarpiz.com)
% All rights reserved. Please read the "license.txt" for license terms.
%
% Project Code: YPAP105
% Project Title: Solving Bin Packing Problem using PSO, FA and IWO
% Publisher: Yarpiz (www.yarpiz.com)
%
% Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team)
%
% Contact Info: sm.kalami@gmail.com, info@yarpiz.com
%
clc;
clear;
close all;
%% Problem Definition
model = CreateModel(); % Create Bin Packing Model
CostFunction = @(x) BinPackingCost(x, model); % Objective Function
nVar = 2*model.n-1; % Number of Decision Variables
VarSize = [1 nVar]; % Decision Variables Matrix Size
VarMin = 0; % Lower Bound of Decision Variables
VarMax = 1; % Upper Bound of Decision Variables
%% PSO Parameters
MaxIt=1000; % Maximum Number of Iterations
nPop=50; % Population Size (Swarm Size)
% PSO Parameters
w=1; % Inertia Weight
wdamp=0.99; % Inertia Weight Damping Ratio
c1=1.5; % Personal Learning Coefficient
c2=2.0; % Global Learning Coefficient
% If you would like to use Constriction Coefficients for PSO,
% uncomment the following block and comment the above set of parameters.
% % Constriction Coefficients
% phi1=2.05;
% phi2=2.05;
% phi=phi1+phi2;
% chi=2/(phi-2+sqrt(phi^2-4*phi));
% w=chi; % Inertia Weight
% wdamp=1; % Inertia Weight Damping Ratio
% c1=chi*phi1; % Personal Learning Coefficient
% c2=chi*phi2; % Global Learning Coefficient
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
nParticleMutation = 2; % Number of Mutations Performed on Each Particle
nGlobalBestMutation = 5; % Number of Mutations Performed on Global Best
%% Initialization
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Sol=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
empty_particle.Best.Sol=[];
particle=repmat(empty_particle,nPop,1);
GlobalBest.Cost=inf;
for i=1:nPop
% Initialize Position
particle(i).Position=unifrnd(VarMin,VarMax,VarSize);
% Initialize Velocity
particle(i).Velocity=zeros(VarSize);
% Evaluation
[particle(i).Cost, particle(i).Sol]=CostFunction(particle(i).Position);
% Update Personal Best
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
BestCost=zeros(MaxIt,1);
%% PSO Main Loop
for it=1:MaxIt
for i=1:nPop
% Update Velocity
particle(i).Velocity = w*particle(i).Velocity …
+c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) …
+c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);
% Apply Velocity Limits
particle(i).Velocity = max(particle(i).Velocity,VelMin);
particle(i).Velocity = min(particle(i).Velocity,VelMax);
% Update Position
particle(i).Position = particle(i).Position + particle(i).Velocity;
% Velocity Mirror Effect
IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);
particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);
% Apply Position Limits
particle(i).Position = max(particle(i).Position,VarMin);
particle(i).Position = min(particle(i).Position,VarMax);
% Evaluation
[particle(i).Cost, particle(i).Sol] = CostFunction(particle(i).Position);
% Perform Mutation
for j=1:nParticleMutation
NewParticle = particle(i);
NewParticle.Position = Mutate(particle(i).Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= particle(i).Cost
particle(i) = NewParticle;
end
end
% Update Personal Best
if particle(i).Cost<particle(i).Best.Cost
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
end
% Perform Mutation on Global Best
for i=1:nGlobalBestMutation
NewParticle = GlobalBest;
NewParticle.Position = Mutate(GlobalBest.Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= GlobalBest.Cost
GlobalBest = NewParticle;
end
end
BestCost(it)=GlobalBest.Cost;
disp([‘Iteration ‘ num2str(it) ‘: Best Cost = ‘ num2str(BestCost(it))]);
w=w*wdamp;
end
BestSol = GlobalBest;
%% Results
figure;
plot(BestCost,’LineWidth’,2);
xlabel(‘Iteration’);
ylabel(‘Best Cost’);
grid on; Hi,
I have attached the code used for PSO algorithm for 3D box packing. I am finding difficulty to modify the code to integrate with importing data from ‘presents.csv’ and also provide best solution for arrangements of the boxes on the grid, for example as ’50 – GA (10-Apr-2024 03.48.47).csv’.
please do share some ideas on this. thanks.
pso.m
%
% Copyright (c) 2015, Yarpiz (www.yarpiz.com)
% All rights reserved. Please read the "license.txt" for license terms.
%
% Project Code: YPAP105
% Project Title: Solving Bin Packing Problem using PSO, FA and IWO
% Publisher: Yarpiz (www.yarpiz.com)
%
% Developer: S. Mostapha Kalami Heris (Member of Yarpiz Team)
%
% Contact Info: sm.kalami@gmail.com, info@yarpiz.com
%
clc;
clear;
close all;
%% Problem Definition
model = CreateModel(); % Create Bin Packing Model
CostFunction = @(x) BinPackingCost(x, model); % Objective Function
nVar = 2*model.n-1; % Number of Decision Variables
VarSize = [1 nVar]; % Decision Variables Matrix Size
VarMin = 0; % Lower Bound of Decision Variables
VarMax = 1; % Upper Bound of Decision Variables
%% PSO Parameters
MaxIt=1000; % Maximum Number of Iterations
nPop=50; % Population Size (Swarm Size)
% PSO Parameters
w=1; % Inertia Weight
wdamp=0.99; % Inertia Weight Damping Ratio
c1=1.5; % Personal Learning Coefficient
c2=2.0; % Global Learning Coefficient
% If you would like to use Constriction Coefficients for PSO,
% uncomment the following block and comment the above set of parameters.
% % Constriction Coefficients
% phi1=2.05;
% phi2=2.05;
% phi=phi1+phi2;
% chi=2/(phi-2+sqrt(phi^2-4*phi));
% w=chi; % Inertia Weight
% wdamp=1; % Inertia Weight Damping Ratio
% c1=chi*phi1; % Personal Learning Coefficient
% c2=chi*phi2; % Global Learning Coefficient
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
nParticleMutation = 2; % Number of Mutations Performed on Each Particle
nGlobalBestMutation = 5; % Number of Mutations Performed on Global Best
%% Initialization
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Sol=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
empty_particle.Best.Sol=[];
particle=repmat(empty_particle,nPop,1);
GlobalBest.Cost=inf;
for i=1:nPop
% Initialize Position
particle(i).Position=unifrnd(VarMin,VarMax,VarSize);
% Initialize Velocity
particle(i).Velocity=zeros(VarSize);
% Evaluation
[particle(i).Cost, particle(i).Sol]=CostFunction(particle(i).Position);
% Update Personal Best
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
BestCost=zeros(MaxIt,1);
%% PSO Main Loop
for it=1:MaxIt
for i=1:nPop
% Update Velocity
particle(i).Velocity = w*particle(i).Velocity …
+c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) …
+c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);
% Apply Velocity Limits
particle(i).Velocity = max(particle(i).Velocity,VelMin);
particle(i).Velocity = min(particle(i).Velocity,VelMax);
% Update Position
particle(i).Position = particle(i).Position + particle(i).Velocity;
% Velocity Mirror Effect
IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);
particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);
% Apply Position Limits
particle(i).Position = max(particle(i).Position,VarMin);
particle(i).Position = min(particle(i).Position,VarMax);
% Evaluation
[particle(i).Cost, particle(i).Sol] = CostFunction(particle(i).Position);
% Perform Mutation
for j=1:nParticleMutation
NewParticle = particle(i);
NewParticle.Position = Mutate(particle(i).Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= particle(i).Cost
particle(i) = NewParticle;
end
end
% Update Personal Best
if particle(i).Cost<particle(i).Best.Cost
particle(i).Best.Position=particle(i).Position;
particle(i).Best.Cost=particle(i).Cost;
particle(i).Best.Sol=particle(i).Sol;
% Update Global Best
if particle(i).Best.Cost<GlobalBest.Cost
GlobalBest=particle(i).Best;
end
end
end
% Perform Mutation on Global Best
for i=1:nGlobalBestMutation
NewParticle = GlobalBest;
NewParticle.Position = Mutate(GlobalBest.Position);
[NewParticle.Cost, NewParticle.Sol] = CostFunction(NewParticle.Position);
if NewParticle.Cost <= GlobalBest.Cost
GlobalBest = NewParticle;
end
end
BestCost(it)=GlobalBest.Cost;
disp([‘Iteration ‘ num2str(it) ‘: Best Cost = ‘ num2str(BestCost(it))]);
w=w*wdamp;
end
BestSol = GlobalBest;
%% Results
figure;
plot(BestCost,’LineWidth’,2);
xlabel(‘Iteration’);
ylabel(‘Best Cost’);
grid on; 3d, matlab, box packing, optimization, algorithm, plot MATLAB Answers — New Questions
getting errors in ic tester code
Dot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
endDot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
end Dot indexing is not supported for variables of this type.
Error in ic_tester>popupmenu1_CreateFcn (line 116)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in ic_tester (line 41)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)ic_tester(‘popupmenu1_CreateFcn’,hObject,eventdata,guidata(hObject))
im getting these errors while running my ic tester code
below is my code from ic_tester.m file
function varargout = ic_tester(varargin)
% IC_TESTER MATLAB code for ic_tester.fig
% IC_TESTER, by itself, creates a new IC_TESTER or raises the existing
% singleton*.
%
% H = IC_TESTER returns the handle to a new IC_TESTER or the handle to
% the existing singleton*.
%
% IC_TESTER(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in IC_TESTER.M with the given input arguments.
%
% IC_TESTER(‘Property’,’Value’,…) creates a new IC_TESTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before ic_tester_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to ic_tester_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Last Modified by GUIDE v2.5 27-Nov-2016 17:28:30
% Begin initialization code – DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @ic_tester_OpeningFcn, …
‘gui_OutputFcn’, @ic_tester_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code – DO NOT EDIT
end
function ic_tester_OpeningFcn(hObject, ~, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to ic_tester (see VARARGIN)
% Choose default command line output for ic_tester
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
set(handles.text2, ‘String’, ‘Welcome! Click on "Connect" to start’);
end
function varargout = ic_tester_OutputFcn(~, ~, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
end
function connectToArduino(handles)
try
handles.a = arduino(‘COM8’);
set(handles.text2, ‘String’, ‘Connected’);
catch
set(handles.text2, ‘String’, ‘Failed to connect to Arduino’);
end
end
function pushbutton1_Callback(~, ~, handles)
set(handles.text2, ‘String’, ‘Connecting…’);
connectToArduino(handles);
end
function popupmenu1_CreateFcn(hObject, ~, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles empty – handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,’BackgroundColor’), get(0,’defaultUicontrolBackgroundColor’))
set(hObject,’BackgroundColor’,’white’);
end
function pushbutton2_Callback(~, ~, handles)
if ~isfield(handles, ‘a’)
set(handles.text2, ‘String’, ‘Arduino not connected’);
return;
end
end
global n;
if isempty(n)
set(handles.text2, ‘String’, ‘Please select an option from the dropdown’);
return;
end
try
a = handles.a;
switch n
case 1
% Your logic for case 1 here
a.pinMode(2,’output’); % Changed from 13 to 2
a.pinMode(3,’output’);
a.pinMode(4,’input’); % Changed from 2 to 3
a.pinMode(5,’output’);
a.pinMode(6,’input’); % Changed from 3 to 4
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(4);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(4);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 2
% Your logic for case 2 here
a.pinMode(13,’input’);
a.pinMode(2,’output’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’output’);
a.pinMode(7,’output’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’output’);
a.pinMode(12,’input’);
a.digitalWrite(2,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(6,0);
a.digitalWrite(7,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);
pause(0.1);
t11=a.digitalRead(13);
t12=a.digitalRead(4);
t13=a.digitalRead(9);
t14=a.digitalRead(12);
if (t11==1 && t12==1 && t13==1 && t14==1)
a.digitalWrite(2,0);
a.digitalWrite(3,1);
a.digitalWrite(5,0);
a.digitalWrite(6,1);
a.digitalWrite(7,0);
a.digitalWrite(8,1);
a.digitalWrite(10,0);
a.digitalWrite(11,1);
pause(0.1);
t21=a.digitalRead(13);
t22=a.digitalRead(4);
t23=a.digitalRead(9);
t24=a.digitalRead(12);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(2,1);
a.digitalWrite(3,0);
a.digitalWrite(5,1);
a.digitalWrite(6,0);
a.digitalWrite(7,1);
a.digitalWrite(8,0);
a.digitalWrite(10,1);
a.digitalWrite(11,0);
pause(0.1);
t31=a.digitalRead(13);
t32=a.digitalRead(4);
t33=a.digitalRead(9);
t34=a.digitalRead(12);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(2,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(6,1);
a.digitalWrite(7,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(11,1);
pause(0.1);
t41=a.digitalRead(13);
t42=a.digitalRead(4);
t43=a.digitalRead(9);
t44=a.digitalRead(12);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 3
% Your logic for case 3 here
a.pinMode(13,’output’);
a.pinMode(2,’input’);
a.pinMode(3,’output’);
a.pinMode(4,’input’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’input’);
a.pinMode(10,’output’);
a.pinMode(11,’input’);
a.pinMode(12,’output’);
a.digitalWrite(13,1);
a.digitalWrite(3,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(10,1);
a.digitalWrite(12,1);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==0 && t12==0 && t13==0 && t14==0 && t15==0 && t16==0)
a.digitalWrite(13,0);
a.digitalWrite(3,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(10,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(2);
t12=a.digitalRead(4);
t13=a.digitalRead(6);
t14=a.digitalRead(7);
t15=a.digitalRead(9);
t16=a.digitalRead(11);
if (t11==1 && t12==1 && t13==1 && t14==1 && t15==1 && t16==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 4
% Your logic for case 4 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==0 && t22==0 && t23==0 && t24==0)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==0 && t32==0 && t33==0 && t34==0)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 5
% Your logic for case 5 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==1 && t42==1 && t43==1 && t44==1)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
case 6
% Your logic for case 6 here
a.pinMode(13,’output’);
a.pinMode(2,’output’);
a.pinMode(3,’input’);
a.pinMode(4,’output’);
a.pinMode(5,’output’);
a.pinMode(6,’input’);
a.pinMode(7,’input’);
a.pinMode(8,’output’);
a.pinMode(9,’output’);
a.pinMode(10,’input’);
a.pinMode(11,’output’);
a.pinMode(12,’output’);
a.digitalWrite(13,0);
a.digitalWrite(2,0);
a.digitalWrite(4,0);
a.digitalWrite(5,0);
a.digitalWrite(8,0);
a.digitalWrite(9,0);
a.digitalWrite(11,0);
a.digitalWrite(12,0);
pause(0.1);
t11=a.digitalRead(3);
t12=a.digitalRead(6);
t13=a.digitalRead(7);
t14=a.digitalRead(10);
if (t11==0 && t12==0 && t13==0 && t14==0)
a.digitalWrite(13,0);
a.digitalWrite(2,1);
a.digitalWrite(4,0);
a.digitalWrite(5,1);
a.digitalWrite(8,0);
a.digitalWrite(9,1);
a.digitalWrite(11,0);
a.digitalWrite(12,1);
pause(0.1);
t21=a.digitalRead(3);
t22=a.digitalRead(6);
t23=a.digitalRead(7);
t24=a.digitalRead(10);
if (t21==1 && t22==1 && t23==1 && t24==1)
a.digitalWrite(13,1);
a.digitalWrite(2,0);
a.digitalWrite(4,1);
a.digitalWrite(5,0);
a.digitalWrite(8,1);
a.digitalWrite(9,0);
a.digitalWrite(11,1);
a.digitalWrite(12,0);
pause(0.1);
t31=a.digitalRead(3);
t32=a.digitalRead(6);
t33=a.digitalRead(7);
t34=a.digitalRead(10);
if (t31==1 && t32==1 && t33==1 && t34==1)
a.digitalWrite(13,1);
a.digitalWrite(2,1);
a.digitalWrite(4,1);
a.digitalWrite(5,1);
a.digitalWrite(8,1);
a.digitalWrite(9,1);
a.digitalWrite(11,1);
a.digitalWrite(12,1);
pause(0.1);
t41=a.digitalRead(3);
t42=a.digitalRead(6);
t43=a.digitalRead(7);
t44=a.digitalRead(10);
if (t41==0 && t42==0 && t43==0 && t44==0)
set(handles.text2,’String’,’IC is in working condition’);
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
else
set(handles.text2,’String’,’Faulty IC’);
end
otherwise
set(handles.text2, ‘String’, ‘Invalid option selected’);
end
catch
set(handles.text2, ‘String’, ‘Error testing IC’);
end
end
function pushbutton3_Callback(~, ~, handles)
if isfield(handles, ‘a’)
delete(handles.a);
set(handles.text2, ‘String’, ‘Arduino disconnected’);
end
end matlab gui MATLAB Answers — New Questions
I faced a problem with wrokspace value that changes its name every time I run the simulation
Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance!Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance! Hi everyone!
I faced a problem with wrokspace value. I am loading several structure files(.mat), but 2 of the loaded files change their names. I already did the simulation for the similar files and similar naming. I tried to clear workspace, to use clear and clc command, tried to rerun the MATLAB, but it did not help. Could you please help me to understand why it changes the name? How can I fix that?
Note:
Previously I used files with names L5p5W_47Hz and for the new simulation I want to use L7p5W_47Hz. When I run new simulation name changes to L57p5W_47Hz.
Thank you in advance! workspace, structures MATLAB Answers — New Questions
Unable to extract logged signal data when using simulink test and parallel compuation toolbox
MATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink testMATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink test MATLAB 2019b.
I;m executing maltab simulink test case with parpool of 8 workers. The test cases have "custom critieria" which verifies some of the logged signals [test.sltest_simout.get(‘logsout’).get(‘signalName’.Values.Data)].
Without PCT its working correctly.
When PCT is active, script in "custom criteria" is not able to extract data from "test" object of simulink test case.
I read online that matlab workers after execution of their job do not transfer their workspact to client matlab session. Is this the reason this issue is coming?
Any solution to overcome this problem?
Test case type: Simulink test simulink test, parallel computing toolbox MATLAB Answers — New Questions
Errors occurs while converting the code created using 5G Toolbox’s SIB1 Recovery Example to C code using Matlab Coder.
I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder?I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder? I am trying to convert the code created using the SIB1 Recovery Example of 5G toolbox into C code through Matlab coder.
However, many errors occurred and were corrected, but the two errors below have not yet been corrected.
First,
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot,’SampleRate’,Fs,’CarrierFrequency’,fPhaseComp);
Error Message : In code generation, when you specify the ‘SampleRate’ name-value argument in the nrOFDMDemodulate(WAVEFORM,NRB,SCS,INITIALNSLOT,NAME,VALUE) syntax, the ‘SampleRate’ and ‘Nfft’ name-value arguments and the NRB and SCS arguments must be compile-time constants.
If the above syntax is changed as follows, incorrect operation will occur.
rxGrid = nrOFDMDemodulate(rxWaveform_1, nrb, scsCommon, nSlot);
Second,
[sib1bits,sib1CRC] = decodeDLSCH(cw,pdsch.Modulation,pdsch.NumLayers,dci.RedundancyVersion);
Error Message : When generating code, the NLAYERS input must be a constant value.
Can you resolve errors that occur in Matlab Coder? matlab coder, 5g toolbox, sib1 recovery example MATLAB Answers — New Questions
how to convert text file as it was written .m file to call functions?
I have bunch of function orders written in text file.
For example text file contains
"move(4,5)
degrade(3)
plussum(6,7)"
and those are supposed to be function name and variables.
I want matlab to read that text file as it was written im .m file to call functions with variablesI have bunch of function orders written in text file.
For example text file contains
"move(4,5)
degrade(3)
plussum(6,7)"
and those are supposed to be function name and variables.
I want matlab to read that text file as it was written im .m file to call functions with variables I have bunch of function orders written in text file.
For example text file contains
"move(4,5)
degrade(3)
plussum(6,7)"
and those are supposed to be function name and variables.
I want matlab to read that text file as it was written im .m file to call functions with variables matlab MATLAB Answers — New Questions