Tag Archives: matlab
How to extract the velocity from the differential equation and use the velocity to calculate the external excitations
Dear all,
I hope you are all doing well. I am using ode45 to sovle the differential equations without any external forces. It works well. However, I get problems in employing the external forces. Specifically, the forces should be relavant to the absolute value of the relative velocity of the wave and structure from the differential equations. I have no idea about how to using the velocity of each time step to calculate the force then apply the force to the structure (equations). My codes are following:
clear all; clc, close all
syms z_0 z_1
% ============ definition of the parameters ==============
% q1 = q_T tower… q2 = q_s surge… q3 = q_p platform pitch
rho = 1025; % kg/m3
g = 9.81;
H_T = 77.6; % m checked
h_R = 90; % m checked
h_T = 10; % m checked
h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
h_BG = 62.69; % m
m_N = 110000+240000; % kg checked
m_T = 249718; % kg checked
m_p = 7446330; % kg checked
J_p = 4.22923e9; % kgm^2 checked
Z_1 = 10; % location of tower bottom
xi_TTFA = 0.01; % damping ratio of the tower
C_m = 1.969954; % checked
C_d = 0.6; % drag coefficient1
k1 = 41180; % N/m mooring stiffness in surge checked
k2 = -2.821*10^6; % N/rad mooring stiffness of coupled effect between surge and pitch
k3 = 3.111e8 -4.99918e9; % Nm/rad mooring stiffness in pitch motion3.111*10^8
c0 = 10^5; % N/(m/s) additional damping in surge checked
% q_s spar surge; q_p spar pitch; q_T TTFA deformation; q_TT TMD disp
% m_N the mass of RNA; m_TT the mass of TMD; m_p mass of spar
% m_T mass of the tower
% m_TTFA modal mass
% J_p inertia moment of spar
% h_R the undisturbed height of nacelle with reference to the MSL
% h_T the undisturbed distance between tower bottom and the MSL
% h_G the undisturbed distance from the MSL to the spar COG
% h_BG undisturbed vertical distance from the spar COG to the center of buoyancy (COB)
% h_b the distance between the platform bottom and the spar COG
% H_T the tower length
% z_1 the tower segment height in the local coordinate system
% z_1 the location of tower bottom
% z_0 the horizontal force acting at the spar location
% mu(z_1) the tower mass density per length
% Phi_TTFA(z_1) the fundamental mode shape of tower in the fore-aft
% k_TTFA bending stiffness of fore-aft displacement of tower
% C_m hydrodynamic inertia coefficients
tspan = 0:0.1:200;
X0 = [0 0 10*pi/180 0 0 0];
% ======================== definition of the tower =======================
mu = 0.093*z_1^2-42.18*z_1+4667; % mass per unit length ?
EI = -2.235e5*z_1^3+8.971e7*z_1^2-1.345e10*z_1+7.296e11;
% bending stiffness of the tower segment ?
Phi_TTFA = 0.8689*(z_1/H_T)^2+0.2205*(z_1/H_T)^3-0.0908*(z_1/H_T)^4+0.1167*(z_1/H_T)^5-0.1154*(z_1/H_T)^6;
% mass components
fun1 = mu*Phi_TTFA^2; m_TTFA = double(int(fun1,z_1,0,H_T)); % checked
fun2 = mu*Phi_TTFA; m_a = double(int(fun2,z_1,0,H_T)); % checked
fun3 = mu*(z_1+h_T)*Phi_TTFA; m_b = double(int(fun3,z_1,0,H_T)); % checked
fun4 = mu*(z_1+h_T); m_c = double(int(fun4,z_1,0,H_T)); % checked
fun5 = mu*(z_1+h_T).^2; m_d = double(int(fun5,z_1,0,H_T)); % checked
% bending stiffnes of the tower
D2y = diff(Phi_TTFA,z_1,2); Dy = diff(Phi_TTFA,z_1,1);
fun6 = EI*D2y^2; f1 = int(fun6,0,H_T);
fun7 = mu; f2 = int(fun7,z_1,H_T);
fun8 = g*(m_N+f2)*Dy^2; f3 = int(fun8,0,H_T);
k_TTFA = double(f1-f3);
% ============== definition of hydrodynamic properties ============
fun9 = @(z_0) diameter(z_0).^2;
fun10 = @(z_0) diameter(z_0).^2.*z_0;
fun11 = @(z_0) diameter(z_0).^2.*z_0.^2;
m_as = rho*(pi/4*(C_m-1)*integral(fun9,-h_b-h_G,0)); % added mass on surge motion
m_asp = rho*(pi/4*(C_m-1)*integral(fun10,-h_b-h_G,0)); % coupled added mass pitch, surge
m_ap = rho*(pi/4*(C_m-1)*integral(fun11,-h_b-h_G,0)); % added mass pitch
% ============== definition of matrices ==================
C_add = [0 0 0;
0 c0 0;
0 0 0];
M = [m_N+m_TTFA m_N+m_a (m_N*h_R+m_b);
m_N+m_a m_N+m_T+m_p m_N*h_R+m_c-m_p*h_G;
(m_N*h_R+m_b) m_N*h_R+m_c-m_p*h_G m_N*h_R^2+m_d+m_p*h_G^2+J_p];
M_hydro = [0 0 0;
0 m_as m_asp;
0 m_asp m_ap];
C = [2*xi_TTFA*sqrt(m_TTFA*k_TTFA) 0 0;
0 0 0;
0 0 0];
K = [k_TTFA 0 -(m_N+m_T)*g;
0 0 0;
-(m_N+m_T)*g 0 -(m_N*h_R+m_c-m_p*h_G)*g];
K_moor = [0 0 0;
0 k1 k2;
0 k2 k3];
% =============== solve the equations and plot the results =============
options = odeset(‘RelTol’,1e-10,’AbsTol’,1e-10);
[t,X] = ode45(@(t,X) odefn(tspan,t,X,M,M_hydro,C,C_add,K,K_moor),tspan,X0,options);
PtfmPitch_deg = X(:,3)*180/pi;
figure,
subplot(3,1,1), plot(t,X(:,1)),grid, xlabel(‘time/ s’), ylabel(‘TTDspFA/ m’)
subplot(3,1,2), plot(t,X(:,2)),grid, xlabel(‘time/ s’), ylabel(‘surge/ m’)
subplot(3,1,3), plot(t,PtfmPitch_deg),grid, xlabel(‘time/ s’), ylabel(‘platform pitch/ deg’)
% ================== definition of the equations =========================
function dXdt = odefn(t,tspan,X,M,M_hydro,C,C_add,K,K_moor)
syms z_0
rho = 1025; C_d = 0.6; h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
dis = X(1:3)’;
vel = X(4:6)’; % get the velocity
% ================== definition of the drag force ========================
v_rel = – (vel(:,2) + vel(:,3) * z_0);
fun12 = @(z_0) diameter(z_0) * abs(v_rel);
fun13 = @(z_0) diameter(z_0) * z_0 * abs(v_rel);
c1 = double(1/2*rho*C_d*int(fun12,z_0,-h_b-h_G,0)); % Morison force1
c2 = double(1/2*rho*C_d*int(fun13,z_0,-h_b-h_G,0)); % Morison force2 force2
F1 = interp1(tspan,c1,t);
F2 = interp1(tspan,c2,t);
F = [0;F1;F2];
x = X(1:3);
xdot = X(4:6);
xddot = (M+M_hydro)(F-(K+K_moor)*x-(C+C_add)*xdot);
dXdt = [xdot; xddot];
end
% ============== definition of D(z) ===============================
function D=diameter(z_0)
D = (9.5).*(z_0<-12 & z_0>=-120)+((-0.3825)*z_0+4.59).*(z_0>=-12 & z_0<-4)+(6.5).*(z_0>=-4 & z_0<=0);
end
I appreciate your support.
Thank you.
Best wishes,
YuDear all,
I hope you are all doing well. I am using ode45 to sovle the differential equations without any external forces. It works well. However, I get problems in employing the external forces. Specifically, the forces should be relavant to the absolute value of the relative velocity of the wave and structure from the differential equations. I have no idea about how to using the velocity of each time step to calculate the force then apply the force to the structure (equations). My codes are following:
clear all; clc, close all
syms z_0 z_1
% ============ definition of the parameters ==============
% q1 = q_T tower… q2 = q_s surge… q3 = q_p platform pitch
rho = 1025; % kg/m3
g = 9.81;
H_T = 77.6; % m checked
h_R = 90; % m checked
h_T = 10; % m checked
h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
h_BG = 62.69; % m
m_N = 110000+240000; % kg checked
m_T = 249718; % kg checked
m_p = 7446330; % kg checked
J_p = 4.22923e9; % kgm^2 checked
Z_1 = 10; % location of tower bottom
xi_TTFA = 0.01; % damping ratio of the tower
C_m = 1.969954; % checked
C_d = 0.6; % drag coefficient1
k1 = 41180; % N/m mooring stiffness in surge checked
k2 = -2.821*10^6; % N/rad mooring stiffness of coupled effect between surge and pitch
k3 = 3.111e8 -4.99918e9; % Nm/rad mooring stiffness in pitch motion3.111*10^8
c0 = 10^5; % N/(m/s) additional damping in surge checked
% q_s spar surge; q_p spar pitch; q_T TTFA deformation; q_TT TMD disp
% m_N the mass of RNA; m_TT the mass of TMD; m_p mass of spar
% m_T mass of the tower
% m_TTFA modal mass
% J_p inertia moment of spar
% h_R the undisturbed height of nacelle with reference to the MSL
% h_T the undisturbed distance between tower bottom and the MSL
% h_G the undisturbed distance from the MSL to the spar COG
% h_BG undisturbed vertical distance from the spar COG to the center of buoyancy (COB)
% h_b the distance between the platform bottom and the spar COG
% H_T the tower length
% z_1 the tower segment height in the local coordinate system
% z_1 the location of tower bottom
% z_0 the horizontal force acting at the spar location
% mu(z_1) the tower mass density per length
% Phi_TTFA(z_1) the fundamental mode shape of tower in the fore-aft
% k_TTFA bending stiffness of fore-aft displacement of tower
% C_m hydrodynamic inertia coefficients
tspan = 0:0.1:200;
X0 = [0 0 10*pi/180 0 0 0];
% ======================== definition of the tower =======================
mu = 0.093*z_1^2-42.18*z_1+4667; % mass per unit length ?
EI = -2.235e5*z_1^3+8.971e7*z_1^2-1.345e10*z_1+7.296e11;
% bending stiffness of the tower segment ?
Phi_TTFA = 0.8689*(z_1/H_T)^2+0.2205*(z_1/H_T)^3-0.0908*(z_1/H_T)^4+0.1167*(z_1/H_T)^5-0.1154*(z_1/H_T)^6;
% mass components
fun1 = mu*Phi_TTFA^2; m_TTFA = double(int(fun1,z_1,0,H_T)); % checked
fun2 = mu*Phi_TTFA; m_a = double(int(fun2,z_1,0,H_T)); % checked
fun3 = mu*(z_1+h_T)*Phi_TTFA; m_b = double(int(fun3,z_1,0,H_T)); % checked
fun4 = mu*(z_1+h_T); m_c = double(int(fun4,z_1,0,H_T)); % checked
fun5 = mu*(z_1+h_T).^2; m_d = double(int(fun5,z_1,0,H_T)); % checked
% bending stiffnes of the tower
D2y = diff(Phi_TTFA,z_1,2); Dy = diff(Phi_TTFA,z_1,1);
fun6 = EI*D2y^2; f1 = int(fun6,0,H_T);
fun7 = mu; f2 = int(fun7,z_1,H_T);
fun8 = g*(m_N+f2)*Dy^2; f3 = int(fun8,0,H_T);
k_TTFA = double(f1-f3);
% ============== definition of hydrodynamic properties ============
fun9 = @(z_0) diameter(z_0).^2;
fun10 = @(z_0) diameter(z_0).^2.*z_0;
fun11 = @(z_0) diameter(z_0).^2.*z_0.^2;
m_as = rho*(pi/4*(C_m-1)*integral(fun9,-h_b-h_G,0)); % added mass on surge motion
m_asp = rho*(pi/4*(C_m-1)*integral(fun10,-h_b-h_G,0)); % coupled added mass pitch, surge
m_ap = rho*(pi/4*(C_m-1)*integral(fun11,-h_b-h_G,0)); % added mass pitch
% ============== definition of matrices ==================
C_add = [0 0 0;
0 c0 0;
0 0 0];
M = [m_N+m_TTFA m_N+m_a (m_N*h_R+m_b);
m_N+m_a m_N+m_T+m_p m_N*h_R+m_c-m_p*h_G;
(m_N*h_R+m_b) m_N*h_R+m_c-m_p*h_G m_N*h_R^2+m_d+m_p*h_G^2+J_p];
M_hydro = [0 0 0;
0 m_as m_asp;
0 m_asp m_ap];
C = [2*xi_TTFA*sqrt(m_TTFA*k_TTFA) 0 0;
0 0 0;
0 0 0];
K = [k_TTFA 0 -(m_N+m_T)*g;
0 0 0;
-(m_N+m_T)*g 0 -(m_N*h_R+m_c-m_p*h_G)*g];
K_moor = [0 0 0;
0 k1 k2;
0 k2 k3];
% =============== solve the equations and plot the results =============
options = odeset(‘RelTol’,1e-10,’AbsTol’,1e-10);
[t,X] = ode45(@(t,X) odefn(tspan,t,X,M,M_hydro,C,C_add,K,K_moor),tspan,X0,options);
PtfmPitch_deg = X(:,3)*180/pi;
figure,
subplot(3,1,1), plot(t,X(:,1)),grid, xlabel(‘time/ s’), ylabel(‘TTDspFA/ m’)
subplot(3,1,2), plot(t,X(:,2)),grid, xlabel(‘time/ s’), ylabel(‘surge/ m’)
subplot(3,1,3), plot(t,PtfmPitch_deg),grid, xlabel(‘time/ s’), ylabel(‘platform pitch/ deg’)
% ================== definition of the equations =========================
function dXdt = odefn(t,tspan,X,M,M_hydro,C,C_add,K,K_moor)
syms z_0
rho = 1025; C_d = 0.6; h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
dis = X(1:3)’;
vel = X(4:6)’; % get the velocity
% ================== definition of the drag force ========================
v_rel = – (vel(:,2) + vel(:,3) * z_0);
fun12 = @(z_0) diameter(z_0) * abs(v_rel);
fun13 = @(z_0) diameter(z_0) * z_0 * abs(v_rel);
c1 = double(1/2*rho*C_d*int(fun12,z_0,-h_b-h_G,0)); % Morison force1
c2 = double(1/2*rho*C_d*int(fun13,z_0,-h_b-h_G,0)); % Morison force2 force2
F1 = interp1(tspan,c1,t);
F2 = interp1(tspan,c2,t);
F = [0;F1;F2];
x = X(1:3);
xdot = X(4:6);
xddot = (M+M_hydro)(F-(K+K_moor)*x-(C+C_add)*xdot);
dXdt = [xdot; xddot];
end
% ============== definition of D(z) ===============================
function D=diameter(z_0)
D = (9.5).*(z_0<-12 & z_0>=-120)+((-0.3825)*z_0+4.59).*(z_0>=-12 & z_0<-4)+(6.5).*(z_0>=-4 & z_0<=0);
end
I appreciate your support.
Thank you.
Best wishes,
Yu Dear all,
I hope you are all doing well. I am using ode45 to sovle the differential equations without any external forces. It works well. However, I get problems in employing the external forces. Specifically, the forces should be relavant to the absolute value of the relative velocity of the wave and structure from the differential equations. I have no idea about how to using the velocity of each time step to calculate the force then apply the force to the structure (equations). My codes are following:
clear all; clc, close all
syms z_0 z_1
% ============ definition of the parameters ==============
% q1 = q_T tower… q2 = q_s surge… q3 = q_p platform pitch
rho = 1025; % kg/m3
g = 9.81;
H_T = 77.6; % m checked
h_R = 90; % m checked
h_T = 10; % m checked
h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
h_BG = 62.69; % m
m_N = 110000+240000; % kg checked
m_T = 249718; % kg checked
m_p = 7446330; % kg checked
J_p = 4.22923e9; % kgm^2 checked
Z_1 = 10; % location of tower bottom
xi_TTFA = 0.01; % damping ratio of the tower
C_m = 1.969954; % checked
C_d = 0.6; % drag coefficient1
k1 = 41180; % N/m mooring stiffness in surge checked
k2 = -2.821*10^6; % N/rad mooring stiffness of coupled effect between surge and pitch
k3 = 3.111e8 -4.99918e9; % Nm/rad mooring stiffness in pitch motion3.111*10^8
c0 = 10^5; % N/(m/s) additional damping in surge checked
% q_s spar surge; q_p spar pitch; q_T TTFA deformation; q_TT TMD disp
% m_N the mass of RNA; m_TT the mass of TMD; m_p mass of spar
% m_T mass of the tower
% m_TTFA modal mass
% J_p inertia moment of spar
% h_R the undisturbed height of nacelle with reference to the MSL
% h_T the undisturbed distance between tower bottom and the MSL
% h_G the undisturbed distance from the MSL to the spar COG
% h_BG undisturbed vertical distance from the spar COG to the center of buoyancy (COB)
% h_b the distance between the platform bottom and the spar COG
% H_T the tower length
% z_1 the tower segment height in the local coordinate system
% z_1 the location of tower bottom
% z_0 the horizontal force acting at the spar location
% mu(z_1) the tower mass density per length
% Phi_TTFA(z_1) the fundamental mode shape of tower in the fore-aft
% k_TTFA bending stiffness of fore-aft displacement of tower
% C_m hydrodynamic inertia coefficients
tspan = 0:0.1:200;
X0 = [0 0 10*pi/180 0 0 0];
% ======================== definition of the tower =======================
mu = 0.093*z_1^2-42.18*z_1+4667; % mass per unit length ?
EI = -2.235e5*z_1^3+8.971e7*z_1^2-1.345e10*z_1+7.296e11;
% bending stiffness of the tower segment ?
Phi_TTFA = 0.8689*(z_1/H_T)^2+0.2205*(z_1/H_T)^3-0.0908*(z_1/H_T)^4+0.1167*(z_1/H_T)^5-0.1154*(z_1/H_T)^6;
% mass components
fun1 = mu*Phi_TTFA^2; m_TTFA = double(int(fun1,z_1,0,H_T)); % checked
fun2 = mu*Phi_TTFA; m_a = double(int(fun2,z_1,0,H_T)); % checked
fun3 = mu*(z_1+h_T)*Phi_TTFA; m_b = double(int(fun3,z_1,0,H_T)); % checked
fun4 = mu*(z_1+h_T); m_c = double(int(fun4,z_1,0,H_T)); % checked
fun5 = mu*(z_1+h_T).^2; m_d = double(int(fun5,z_1,0,H_T)); % checked
% bending stiffnes of the tower
D2y = diff(Phi_TTFA,z_1,2); Dy = diff(Phi_TTFA,z_1,1);
fun6 = EI*D2y^2; f1 = int(fun6,0,H_T);
fun7 = mu; f2 = int(fun7,z_1,H_T);
fun8 = g*(m_N+f2)*Dy^2; f3 = int(fun8,0,H_T);
k_TTFA = double(f1-f3);
% ============== definition of hydrodynamic properties ============
fun9 = @(z_0) diameter(z_0).^2;
fun10 = @(z_0) diameter(z_0).^2.*z_0;
fun11 = @(z_0) diameter(z_0).^2.*z_0.^2;
m_as = rho*(pi/4*(C_m-1)*integral(fun9,-h_b-h_G,0)); % added mass on surge motion
m_asp = rho*(pi/4*(C_m-1)*integral(fun10,-h_b-h_G,0)); % coupled added mass pitch, surge
m_ap = rho*(pi/4*(C_m-1)*integral(fun11,-h_b-h_G,0)); % added mass pitch
% ============== definition of matrices ==================
C_add = [0 0 0;
0 c0 0;
0 0 0];
M = [m_N+m_TTFA m_N+m_a (m_N*h_R+m_b);
m_N+m_a m_N+m_T+m_p m_N*h_R+m_c-m_p*h_G;
(m_N*h_R+m_b) m_N*h_R+m_c-m_p*h_G m_N*h_R^2+m_d+m_p*h_G^2+J_p];
M_hydro = [0 0 0;
0 m_as m_asp;
0 m_asp m_ap];
C = [2*xi_TTFA*sqrt(m_TTFA*k_TTFA) 0 0;
0 0 0;
0 0 0];
K = [k_TTFA 0 -(m_N+m_T)*g;
0 0 0;
-(m_N+m_T)*g 0 -(m_N*h_R+m_c-m_p*h_G)*g];
K_moor = [0 0 0;
0 k1 k2;
0 k2 k3];
% =============== solve the equations and plot the results =============
options = odeset(‘RelTol’,1e-10,’AbsTol’,1e-10);
[t,X] = ode45(@(t,X) odefn(tspan,t,X,M,M_hydro,C,C_add,K,K_moor),tspan,X0,options);
PtfmPitch_deg = X(:,3)*180/pi;
figure,
subplot(3,1,1), plot(t,X(:,1)),grid, xlabel(‘time/ s’), ylabel(‘TTDspFA/ m’)
subplot(3,1,2), plot(t,X(:,2)),grid, xlabel(‘time/ s’), ylabel(‘surge/ m’)
subplot(3,1,3), plot(t,PtfmPitch_deg),grid, xlabel(‘time/ s’), ylabel(‘platform pitch/ deg’)
% ================== definition of the equations =========================
function dXdt = odefn(t,tspan,X,M,M_hydro,C,C_add,K,K_moor)
syms z_0
rho = 1025; C_d = 0.6; h_G = 89.9155; % m checked
h_b = 30.0845; % m checked
dis = X(1:3)’;
vel = X(4:6)’; % get the velocity
% ================== definition of the drag force ========================
v_rel = – (vel(:,2) + vel(:,3) * z_0);
fun12 = @(z_0) diameter(z_0) * abs(v_rel);
fun13 = @(z_0) diameter(z_0) * z_0 * abs(v_rel);
c1 = double(1/2*rho*C_d*int(fun12,z_0,-h_b-h_G,0)); % Morison force1
c2 = double(1/2*rho*C_d*int(fun13,z_0,-h_b-h_G,0)); % Morison force2 force2
F1 = interp1(tspan,c1,t);
F2 = interp1(tspan,c2,t);
F = [0;F1;F2];
x = X(1:3);
xdot = X(4:6);
xddot = (M+M_hydro)(F-(K+K_moor)*x-(C+C_add)*xdot);
dXdt = [xdot; xddot];
end
% ============== definition of D(z) ===============================
function D=diameter(z_0)
D = (9.5).*(z_0<-12 & z_0>=-120)+((-0.3825)*z_0+4.59).*(z_0>=-12 & z_0<-4)+(6.5).*(z_0>=-4 & z_0<=0);
end
I appreciate your support.
Thank you.
Best wishes,
Yu ode45, differential equations MATLAB Answers — New Questions
Using MATLAB to do Numerical Differentiation
Given: A piecewise function where v(t)=70t @ t<=20s & 1596.2-9.81t @ 20<t<=t_max <—(eq 1)
Also given: s(t)=35t^2+7620 @ t<=20s & 1596.2t-4.905t^2-8342 @ 20<t<=t_max <—(eq 2)
Find: For figure 3 I need to plot my velocity as a function of time, (the same thing I did in figure 1), only this time I need to add an additional line which is the derivative approximation of velocity. I’ll use circle markers for my approximation at every 10th point wtih no line. This is to show that my line for the derivative approximation should be nearly identical to my equation line.
My Solution:
%% Finding Value of tmax
% Finding tmax and rounding it to the nearest whole number
%%
tmaxr=roots([-9.81, 1596.2]);
tmax=ceil(tmaxr);
%% Plotting Equation 1
% Creating Figure 1 from Equation 1
%%
t=0:0.1:tmax;
v=zeros(size(t));
for N=1:length(t)
if t(N)<=20
v(N)=70*t(N);
else
v(N)=1596.2-9.81*t(N); % Only valid for t > 20 seconds
end
end
figure(1)
plot(t,v)
xlabel(‘Time (s)’)
ylabel(‘Velocity (m/s)’)
title(‘Velocity vs. Time’)
%% Plotting Equation 2
% Creating Figure 2 from Equation 2
%%
t=0:0.1:tmax;
s=zeros(size(t));
for N=1:length(t)
if t(N)<=20
s(N)=35.*t(N).^2+7620;
else
s(N)=1596.2.*t(N)-4.905.*t(N).^2-8342;
end
end
figure(2)
plot(t,s)
xlabel(‘Time (s)’)
ylabel(‘Altitude (m)’)
title(‘Position vs. Time’)
Issue: So I have the above code which I believe to be correct but not sure of how to get the derivative approximation…Given: A piecewise function where v(t)=70t @ t<=20s & 1596.2-9.81t @ 20<t<=t_max <—(eq 1)
Also given: s(t)=35t^2+7620 @ t<=20s & 1596.2t-4.905t^2-8342 @ 20<t<=t_max <—(eq 2)
Find: For figure 3 I need to plot my velocity as a function of time, (the same thing I did in figure 1), only this time I need to add an additional line which is the derivative approximation of velocity. I’ll use circle markers for my approximation at every 10th point wtih no line. This is to show that my line for the derivative approximation should be nearly identical to my equation line.
My Solution:
%% Finding Value of tmax
% Finding tmax and rounding it to the nearest whole number
%%
tmaxr=roots([-9.81, 1596.2]);
tmax=ceil(tmaxr);
%% Plotting Equation 1
% Creating Figure 1 from Equation 1
%%
t=0:0.1:tmax;
v=zeros(size(t));
for N=1:length(t)
if t(N)<=20
v(N)=70*t(N);
else
v(N)=1596.2-9.81*t(N); % Only valid for t > 20 seconds
end
end
figure(1)
plot(t,v)
xlabel(‘Time (s)’)
ylabel(‘Velocity (m/s)’)
title(‘Velocity vs. Time’)
%% Plotting Equation 2
% Creating Figure 2 from Equation 2
%%
t=0:0.1:tmax;
s=zeros(size(t));
for N=1:length(t)
if t(N)<=20
s(N)=35.*t(N).^2+7620;
else
s(N)=1596.2.*t(N)-4.905.*t(N).^2-8342;
end
end
figure(2)
plot(t,s)
xlabel(‘Time (s)’)
ylabel(‘Altitude (m)’)
title(‘Position vs. Time’)
Issue: So I have the above code which I believe to be correct but not sure of how to get the derivative approximation… Given: A piecewise function where v(t)=70t @ t<=20s & 1596.2-9.81t @ 20<t<=t_max <—(eq 1)
Also given: s(t)=35t^2+7620 @ t<=20s & 1596.2t-4.905t^2-8342 @ 20<t<=t_max <—(eq 2)
Find: For figure 3 I need to plot my velocity as a function of time, (the same thing I did in figure 1), only this time I need to add an additional line which is the derivative approximation of velocity. I’ll use circle markers for my approximation at every 10th point wtih no line. This is to show that my line for the derivative approximation should be nearly identical to my equation line.
My Solution:
%% Finding Value of tmax
% Finding tmax and rounding it to the nearest whole number
%%
tmaxr=roots([-9.81, 1596.2]);
tmax=ceil(tmaxr);
%% Plotting Equation 1
% Creating Figure 1 from Equation 1
%%
t=0:0.1:tmax;
v=zeros(size(t));
for N=1:length(t)
if t(N)<=20
v(N)=70*t(N);
else
v(N)=1596.2-9.81*t(N); % Only valid for t > 20 seconds
end
end
figure(1)
plot(t,v)
xlabel(‘Time (s)’)
ylabel(‘Velocity (m/s)’)
title(‘Velocity vs. Time’)
%% Plotting Equation 2
% Creating Figure 2 from Equation 2
%%
t=0:0.1:tmax;
s=zeros(size(t));
for N=1:length(t)
if t(N)<=20
s(N)=35.*t(N).^2+7620;
else
s(N)=1596.2.*t(N)-4.905.*t(N).^2-8342;
end
end
figure(2)
plot(t,s)
xlabel(‘Time (s)’)
ylabel(‘Altitude (m)’)
title(‘Position vs. Time’)
Issue: So I have the above code which I believe to be correct but not sure of how to get the derivative approximation… plotting, calculus MATLAB Answers — New Questions
How can I plot the complete two circles vertical not horizontal ?
clc
A =[ -1.
0.
0.
0.
0.
0.
0.
0.
0.
-1.
1.
-1.
1.
-1.
2.
-2.
3.
-3.
4.
-5.
5.
-7.
8.
-10.
12.
-16.
20.
-34.
53.
-30.];
B=[ 3262.
131.
-375.
563.
-639.
602.
-486.
345.
-218.
124.
-64.
31.
-13.
5.
-2.
1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
C=[ 0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
AA=[ 8.
0.
1.
-1.
3.
-8.
21.
-52.
126.
-307.
738.
-1771.
4215.
-10047.
23743.
-56327.
132493.
-313806.
736630.
-1749066.
4111518.
-9852368.
23316548.
-57140296.
137506208.
-357384160.
896199040.
-3046175232.
9340706816.
-10404635648.];
BB=[ -76625208.
858156.
-3341452.
4741591.
-7006134.
8310705.
-9026788.
8857093.
-7988619.
6701862.
-5230164.
3847242.
-2655485.
1743048.
-1080089.
641116.
-360810.
195865.
-101116.
50743.
-24261.
11394.
-5098.
2281.
-969.
430.
-179.
97.
-47.
8.];
CC=[ 29.
0.
1.
-1.
1.
-1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
a = 1 ; %RADIUS
L=.1;
akm=2;gamma=0.3;arh=10; %beta1=beta2=1,a1=1,a2=2,arh=10,delta=0.5,u2=-1
alphaa=sqrt(((2+akm).*akm./(gamma.*(2+akm))).^2+arh.^2);
betaa=(2.*akm.*arh.^2./gamma).^(0.25);
alpha1=sqrt((alphaa.^2+sqrt(alphaa.^4-4.*betaa.^4))./2);
alpha2=sqrt((alphaa.^2-sqrt(alphaa.^4-4.*betaa.^4))./2);
dd=6;
c =-a/L;
b =a/L;
m =a*200; % NUMBER OF INTERVALS
%[x,y]=meshgrid((c+dd:(b-c)/m:b),(c:(b-c)/m:b)’);
[x,y]=meshgrid((c+dd:(b-c)/m:b),(0:(b-c)/m:b)’);
[I, J]=find(sqrt(x.^2+y.^2)<(a-0.1));
if ~isempty(I)
x(I,J) = 0; y(I,J) = 0;
end
r=sqrt(x.^2+y.^2);
t=atan2(y,x);
r2=sqrt(r.^2+dd.^2-2.*r.*dd.*cos(t));
zet=(r.^2-r2.^2-dd.^2)./(2.*r2.*dd);
warning on
psi1=0;
for i=2:7
Ai=A(i-1);Bi=B(i-1);Ci=C(i-1);AAi=AA(i-1);BBi=BB(i-1);CCi=CC(i-1);
%psi1=-psi1-(Ai.*r.^(-i-1)+r.^(-3./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(-3./2).*besselk(i-1./2,r.*alpha2).*Ci).*legendreP(i-1,cos(t))-(AAi.*r2.^(-i-1)+r2.^(-3./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*legendreP(i-1,zet);
psi1=psi1+(Ai.*r.^(-i+1)+r.^(1./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(1./2).*besselk(i-1./2,r.*alpha2).*Ci).*gegenbauerC(i,-1./2, cos(t))+(AAi.*r2.^(-i+1)+r2.^(1./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*gegenbauerC(i,-1./2,zet);
end
hold on
%[DH1,h1]=contour(x,y,psi1,25,’-k’,’LineWidth’,1.1); %,psi2,’–k’,psi2,’:k’
%[DH1,h1]=contour(x,y,psi1);
%p1=contour(x,y,psi1,[0.3 0.3],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
%p2=contour(x,y,psi1,[0.4 0.4],’r’,’LineWidth’,1.1);
%p3=contour(x,y,psi1,[0.5 0.5],’g’,’LineWidth’,1.1);
%p4=contour(x,y,psi1,[0.6 0.6],’b’,’LineWidth’,1.1);
%p5=contour(x,y,psi1,[0.7 0.7],’c’,’LineWidth’,1.1);
%p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%p7=contour(x,y,psi1,[0.9 0.9],’y’,’LineWidth’,1.1);
p1=contour(x,y,psi1,[0.01 0.01],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
p2=contour(x,y,psi1,[0.05 .05],’r’,’LineWidth’,1.1);
p3=contour(x,y,psi1,[0.1 0.1],’g’,’LineWidth’,1.1);
p4=contour(x,y,psi1,[0.4 0.4],’b’,’LineWidth’,1.1);
p5=contour(x,y,psi1,[0.6 0.6],’c’,’LineWidth’,1.1);
p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%clabel(DH1,h1,’FontSize’,10,’Color’,’red’)
%%%%%%%%%%%%%%% $frac{textstyle a_1+a_2}{textstyle h}=6.0,;
hold on
t3 = linspace(0,pi,1000);
h2=0;
k2=0;
rr2=2;
x2 = rr2*cos(t3)+h2;
y2 = rr2*sin(t3)+k2;
set(plot(x2,y2,’-k’),’LineWidth’,1.1);
fill(x2,y2,’w’)
hold on
t2 = linspace(0,pi,1000);
h=dd;
k=0;
rr=1;
x1 = rr*cos(t2)+h;
y1 = rr*sin(t2)+k;
set(plot(x1,y1,’-k’),’LineWidth’,1.1);
fill(x1,y1,’w’)
%axis square;
axis(‘equal’)
box on
%set(gca,’XTick’,[], ‘YTick’, [])
axis on
xticklabels([])
yticklabels([])
legend(‘0.01′,’0.05′,’0.1′,’0.4′,’0.6′,’0.8′,’Location’,’northwest’)
%title(‘$frac{beta_1}{a_1mu}=frac{a_1beta_2}{mu}=1.0,;R_{H}=1.0,;frac{a_2}{a_1}=2.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%title(‘$(a);; R_{H}=1.0,;frac{kappa}{mu}=4.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%%%%%%%%%%%%%%%%%%%%clc
A =[ -1.
0.
0.
0.
0.
0.
0.
0.
0.
-1.
1.
-1.
1.
-1.
2.
-2.
3.
-3.
4.
-5.
5.
-7.
8.
-10.
12.
-16.
20.
-34.
53.
-30.];
B=[ 3262.
131.
-375.
563.
-639.
602.
-486.
345.
-218.
124.
-64.
31.
-13.
5.
-2.
1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
C=[ 0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
AA=[ 8.
0.
1.
-1.
3.
-8.
21.
-52.
126.
-307.
738.
-1771.
4215.
-10047.
23743.
-56327.
132493.
-313806.
736630.
-1749066.
4111518.
-9852368.
23316548.
-57140296.
137506208.
-357384160.
896199040.
-3046175232.
9340706816.
-10404635648.];
BB=[ -76625208.
858156.
-3341452.
4741591.
-7006134.
8310705.
-9026788.
8857093.
-7988619.
6701862.
-5230164.
3847242.
-2655485.
1743048.
-1080089.
641116.
-360810.
195865.
-101116.
50743.
-24261.
11394.
-5098.
2281.
-969.
430.
-179.
97.
-47.
8.];
CC=[ 29.
0.
1.
-1.
1.
-1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
a = 1 ; %RADIUS
L=.1;
akm=2;gamma=0.3;arh=10; %beta1=beta2=1,a1=1,a2=2,arh=10,delta=0.5,u2=-1
alphaa=sqrt(((2+akm).*akm./(gamma.*(2+akm))).^2+arh.^2);
betaa=(2.*akm.*arh.^2./gamma).^(0.25);
alpha1=sqrt((alphaa.^2+sqrt(alphaa.^4-4.*betaa.^4))./2);
alpha2=sqrt((alphaa.^2-sqrt(alphaa.^4-4.*betaa.^4))./2);
dd=6;
c =-a/L;
b =a/L;
m =a*200; % NUMBER OF INTERVALS
%[x,y]=meshgrid((c+dd:(b-c)/m:b),(c:(b-c)/m:b)’);
[x,y]=meshgrid((c+dd:(b-c)/m:b),(0:(b-c)/m:b)’);
[I, J]=find(sqrt(x.^2+y.^2)<(a-0.1));
if ~isempty(I)
x(I,J) = 0; y(I,J) = 0;
end
r=sqrt(x.^2+y.^2);
t=atan2(y,x);
r2=sqrt(r.^2+dd.^2-2.*r.*dd.*cos(t));
zet=(r.^2-r2.^2-dd.^2)./(2.*r2.*dd);
warning on
psi1=0;
for i=2:7
Ai=A(i-1);Bi=B(i-1);Ci=C(i-1);AAi=AA(i-1);BBi=BB(i-1);CCi=CC(i-1);
%psi1=-psi1-(Ai.*r.^(-i-1)+r.^(-3./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(-3./2).*besselk(i-1./2,r.*alpha2).*Ci).*legendreP(i-1,cos(t))-(AAi.*r2.^(-i-1)+r2.^(-3./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*legendreP(i-1,zet);
psi1=psi1+(Ai.*r.^(-i+1)+r.^(1./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(1./2).*besselk(i-1./2,r.*alpha2).*Ci).*gegenbauerC(i,-1./2, cos(t))+(AAi.*r2.^(-i+1)+r2.^(1./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*gegenbauerC(i,-1./2,zet);
end
hold on
%[DH1,h1]=contour(x,y,psi1,25,’-k’,’LineWidth’,1.1); %,psi2,’–k’,psi2,’:k’
%[DH1,h1]=contour(x,y,psi1);
%p1=contour(x,y,psi1,[0.3 0.3],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
%p2=contour(x,y,psi1,[0.4 0.4],’r’,’LineWidth’,1.1);
%p3=contour(x,y,psi1,[0.5 0.5],’g’,’LineWidth’,1.1);
%p4=contour(x,y,psi1,[0.6 0.6],’b’,’LineWidth’,1.1);
%p5=contour(x,y,psi1,[0.7 0.7],’c’,’LineWidth’,1.1);
%p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%p7=contour(x,y,psi1,[0.9 0.9],’y’,’LineWidth’,1.1);
p1=contour(x,y,psi1,[0.01 0.01],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
p2=contour(x,y,psi1,[0.05 .05],’r’,’LineWidth’,1.1);
p3=contour(x,y,psi1,[0.1 0.1],’g’,’LineWidth’,1.1);
p4=contour(x,y,psi1,[0.4 0.4],’b’,’LineWidth’,1.1);
p5=contour(x,y,psi1,[0.6 0.6],’c’,’LineWidth’,1.1);
p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%clabel(DH1,h1,’FontSize’,10,’Color’,’red’)
%%%%%%%%%%%%%%% $frac{textstyle a_1+a_2}{textstyle h}=6.0,;
hold on
t3 = linspace(0,pi,1000);
h2=0;
k2=0;
rr2=2;
x2 = rr2*cos(t3)+h2;
y2 = rr2*sin(t3)+k2;
set(plot(x2,y2,’-k’),’LineWidth’,1.1);
fill(x2,y2,’w’)
hold on
t2 = linspace(0,pi,1000);
h=dd;
k=0;
rr=1;
x1 = rr*cos(t2)+h;
y1 = rr*sin(t2)+k;
set(plot(x1,y1,’-k’),’LineWidth’,1.1);
fill(x1,y1,’w’)
%axis square;
axis(‘equal’)
box on
%set(gca,’XTick’,[], ‘YTick’, [])
axis on
xticklabels([])
yticklabels([])
legend(‘0.01′,’0.05′,’0.1′,’0.4′,’0.6′,’0.8′,’Location’,’northwest’)
%title(‘$frac{beta_1}{a_1mu}=frac{a_1beta_2}{mu}=1.0,;R_{H}=1.0,;frac{a_2}{a_1}=2.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%title(‘$(a);; R_{H}=1.0,;frac{kappa}{mu}=4.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%%%%%%%%%%%%%%%%%%%% clc
A =[ -1.
0.
0.
0.
0.
0.
0.
0.
0.
-1.
1.
-1.
1.
-1.
2.
-2.
3.
-3.
4.
-5.
5.
-7.
8.
-10.
12.
-16.
20.
-34.
53.
-30.];
B=[ 3262.
131.
-375.
563.
-639.
602.
-486.
345.
-218.
124.
-64.
31.
-13.
5.
-2.
1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
C=[ 0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
AA=[ 8.
0.
1.
-1.
3.
-8.
21.
-52.
126.
-307.
738.
-1771.
4215.
-10047.
23743.
-56327.
132493.
-313806.
736630.
-1749066.
4111518.
-9852368.
23316548.
-57140296.
137506208.
-357384160.
896199040.
-3046175232.
9340706816.
-10404635648.];
BB=[ -76625208.
858156.
-3341452.
4741591.
-7006134.
8310705.
-9026788.
8857093.
-7988619.
6701862.
-5230164.
3847242.
-2655485.
1743048.
-1080089.
641116.
-360810.
195865.
-101116.
50743.
-24261.
11394.
-5098.
2281.
-969.
430.
-179.
97.
-47.
8.];
CC=[ 29.
0.
1.
-1.
1.
-1.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.
0.];
a = 1 ; %RADIUS
L=.1;
akm=2;gamma=0.3;arh=10; %beta1=beta2=1,a1=1,a2=2,arh=10,delta=0.5,u2=-1
alphaa=sqrt(((2+akm).*akm./(gamma.*(2+akm))).^2+arh.^2);
betaa=(2.*akm.*arh.^2./gamma).^(0.25);
alpha1=sqrt((alphaa.^2+sqrt(alphaa.^4-4.*betaa.^4))./2);
alpha2=sqrt((alphaa.^2-sqrt(alphaa.^4-4.*betaa.^4))./2);
dd=6;
c =-a/L;
b =a/L;
m =a*200; % NUMBER OF INTERVALS
%[x,y]=meshgrid((c+dd:(b-c)/m:b),(c:(b-c)/m:b)’);
[x,y]=meshgrid((c+dd:(b-c)/m:b),(0:(b-c)/m:b)’);
[I, J]=find(sqrt(x.^2+y.^2)<(a-0.1));
if ~isempty(I)
x(I,J) = 0; y(I,J) = 0;
end
r=sqrt(x.^2+y.^2);
t=atan2(y,x);
r2=sqrt(r.^2+dd.^2-2.*r.*dd.*cos(t));
zet=(r.^2-r2.^2-dd.^2)./(2.*r2.*dd);
warning on
psi1=0;
for i=2:7
Ai=A(i-1);Bi=B(i-1);Ci=C(i-1);AAi=AA(i-1);BBi=BB(i-1);CCi=CC(i-1);
%psi1=-psi1-(Ai.*r.^(-i-1)+r.^(-3./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(-3./2).*besselk(i-1./2,r.*alpha2).*Ci).*legendreP(i-1,cos(t))-(AAi.*r2.^(-i-1)+r2.^(-3./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*legendreP(i-1,zet);
psi1=psi1+(Ai.*r.^(-i+1)+r.^(1./2).*besselk(i-1./2,r.*alpha1).*Bi+r.^(1./2).*besselk(i-1./2,r.*alpha2).*Ci).*gegenbauerC(i,-1./2, cos(t))+(AAi.*r2.^(-i+1)+r2.^(1./2).*besselk(i-1./2,r2.*alpha1).*BBi+r2.^(1./2).*besselk(i-1./2,r2.*alpha2).*CCi).*gegenbauerC(i,-1./2,zet);
end
hold on
%[DH1,h1]=contour(x,y,psi1,25,’-k’,’LineWidth’,1.1); %,psi2,’–k’,psi2,’:k’
%[DH1,h1]=contour(x,y,psi1);
%p1=contour(x,y,psi1,[0.3 0.3],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
%p2=contour(x,y,psi1,[0.4 0.4],’r’,’LineWidth’,1.1);
%p3=contour(x,y,psi1,[0.5 0.5],’g’,’LineWidth’,1.1);
%p4=contour(x,y,psi1,[0.6 0.6],’b’,’LineWidth’,1.1);
%p5=contour(x,y,psi1,[0.7 0.7],’c’,’LineWidth’,1.1);
%p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%p7=contour(x,y,psi1,[0.9 0.9],’y’,’LineWidth’,1.1);
p1=contour(x,y,psi1,[0.01 0.01],’k’,’LineWidth’,1.1); %,’ShowText’,’on’
p2=contour(x,y,psi1,[0.05 .05],’r’,’LineWidth’,1.1);
p3=contour(x,y,psi1,[0.1 0.1],’g’,’LineWidth’,1.1);
p4=contour(x,y,psi1,[0.4 0.4],’b’,’LineWidth’,1.1);
p5=contour(x,y,psi1,[0.6 0.6],’c’,’LineWidth’,1.1);
p6=contour(x,y,psi1,[0.8 0.8],’m’,’LineWidth’,1.1);
%clabel(DH1,h1,’FontSize’,10,’Color’,’red’)
%%%%%%%%%%%%%%% $frac{textstyle a_1+a_2}{textstyle h}=6.0,;
hold on
t3 = linspace(0,pi,1000);
h2=0;
k2=0;
rr2=2;
x2 = rr2*cos(t3)+h2;
y2 = rr2*sin(t3)+k2;
set(plot(x2,y2,’-k’),’LineWidth’,1.1);
fill(x2,y2,’w’)
hold on
t2 = linspace(0,pi,1000);
h=dd;
k=0;
rr=1;
x1 = rr*cos(t2)+h;
y1 = rr*sin(t2)+k;
set(plot(x1,y1,’-k’),’LineWidth’,1.1);
fill(x1,y1,’w’)
%axis square;
axis(‘equal’)
box on
%set(gca,’XTick’,[], ‘YTick’, [])
axis on
xticklabels([])
yticklabels([])
legend(‘0.01′,’0.05′,’0.1′,’0.4′,’0.6′,’0.8′,’Location’,’northwest’)
%title(‘$frac{beta_1}{a_1mu}=frac{a_1beta_2}{mu}=1.0,;R_{H}=1.0,;frac{a_2}{a_1}=2.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%title(‘$(a);; R_{H}=1.0,;frac{kappa}{mu}=4.0$’,’Interpreter’,’latex’,’FontSize’,12,’FontName’,’Times New Roman’,’FontWeight’,’Normal’)
%%%%%%%%%%%%%%%%%%%% stream, two circles, vertical axis MATLAB Answers — New Questions
Change in the gradient of points in 3D space with respect to its neighbour.
Hello matlab Community,
Is there any function in Matlab to find the gradient change of a point in 3d space with respect to its neighbour point"?
I have sutface coordinates of approximately 15000 points (.STL file contains this). Now i want to find the gradient change of each point with resppecte to its neighbour.
I am attaching .STL file which contain coordinates of all the surface point.
It can be read in matlab using
TR=stlread(‘aggrgate_1.stl’);
trimesh(TR);Hello matlab Community,
Is there any function in Matlab to find the gradient change of a point in 3d space with respect to its neighbour point"?
I have sutface coordinates of approximately 15000 points (.STL file contains this). Now i want to find the gradient change of each point with resppecte to its neighbour.
I am attaching .STL file which contain coordinates of all the surface point.
It can be read in matlab using
TR=stlread(‘aggrgate_1.stl’);
trimesh(TR); Hello matlab Community,
Is there any function in Matlab to find the gradient change of a point in 3d space with respect to its neighbour point"?
I have sutface coordinates of approximately 15000 points (.STL file contains this). Now i want to find the gradient change of each point with resppecte to its neighbour.
I am attaching .STL file which contain coordinates of all the surface point.
It can be read in matlab using
TR=stlread(‘aggrgate_1.stl’);
trimesh(TR); gradient change, stl MATLAB Answers — New Questions
Issue with integration using trapz
Hello,
I’m trying to implement integration using trapz. But the resultant quantity after integration is negligibly small and doesn’t increment. Am I doing something wrong which is confusing me.
Can you see and advice me the chnages if any.
num=15;
Iq(1)=eps;
for i=2:11
Iq(i)=trapz(X(1:i),X(1:i).*jd0.*(1-(X(1:i)-x0).^2).^num);
end
Here, x0=1
rgds,
rcHello,
I’m trying to implement integration using trapz. But the resultant quantity after integration is negligibly small and doesn’t increment. Am I doing something wrong which is confusing me.
Can you see and advice me the chnages if any.
num=15;
Iq(1)=eps;
for i=2:11
Iq(i)=trapz(X(1:i),X(1:i).*jd0.*(1-(X(1:i)-x0).^2).^num);
end
Here, x0=1
rgds,
rc Hello,
I’m trying to implement integration using trapz. But the resultant quantity after integration is negligibly small and doesn’t increment. Am I doing something wrong which is confusing me.
Can you see and advice me the chnages if any.
num=15;
Iq(1)=eps;
for i=2:11
Iq(i)=trapz(X(1:i),X(1:i).*jd0.*(1-(X(1:i)-x0).^2).^num);
end
Here, x0=1
rgds,
rc trapz MATLAB Answers — New Questions
Specialized Power Systems Multimeter Block
Is there a way to extract numerical results from the phasor analysis of the multimeter block?
What is the output format of this block and how to separate the output measurements into individual items?Is there a way to extract numerical results from the phasor analysis of the multimeter block?
What is the output format of this block and how to separate the output measurements into individual items? Is there a way to extract numerical results from the phasor analysis of the multimeter block?
What is the output format of this block and how to separate the output measurements into individual items? specialized power system, multimeter measurements MATLAB Answers — New Questions
Negative variance of state when training.
For our image segmentation task, we are trying to implement a custom training loop for our network, giving us more freedom to visualize predictions while training. Bellow follows parts of the code that should be key in identifying the underlying issue:
%% Classes
classNames = ["bg", "live", "nk", "round", "blob", "other"];
labelIDs = [0 192 255 1 2 3];
numClasses = 6;
%% Create mobilenet
network = ‘mobilenetv2’;
lgraph = deeplabv3plusLayers([224 224 3],numClasses,network);
% X our whole trainig data
[m, s] = calculate_input_params(single(X));
input_layer_new = imageInputLayer([224 224 3], "Normalization","zscore", "Mean",m, "StandardDeviation",s);
lgraph = replaceLayer(lgraph, "input_1", input_layer_new);
lgraph = removeLayers(lgraph, "classification");
%% Initialize network, training data and parameters
net = dlnetwork(lgraph);
mbq = minibatchqueue(ds_augmented, "MiniBatchSize",16, "MiniBatchFormat",["SSCB" "SSB"]);
numepochs = 3;
initialLearnRate = 0.01;
decay = 0.01;
momentum = 0.9;
vel = [];
%% Necessary code to avoid error
try
nnet.internal.cnngpu.reluForward(1);
catch ME
end
%% Train network
epoch = 0;
iteration = 0;
while epoch < numepochs
epoch = epoch + 1;
shuffle(mbq);
while hasdata(mbq)
iteration = iteration + 1;
epoch_iteration = [epoch iteration]
[X_b, Y_b] = next(mbq);
Y_b = adjust_dimensions(Y_b);
[loss,gradients,state] = dlfeval(@modelLoss,net,X_b,Y_b);
net.State = state;
loss
learnRate = initialLearnRate/(1 + decay*iteration);
[net, vel] = sgdmupdate(net, gradients, vel, learnRate, momentum);
end
end
function [loss,gradients,state] = modelLoss(net,X_b,Y_b)
classWeights = [1 10 10 10 10 10];
% Forward data through network.
[Y_p,state] = forward(net,X_b);
% Calculate cross-entropy loss.
loss = crossentropy(Y_p,Y_b,classWeights,’WeightsFormat’,’UC’,’TargetCategories’,’independent’);
% Calculate gradients of loss with respect to learnable parameters.
gradients = dlgradient(loss,net.Learnables);
end
Essentialy, when we run the Train network section, we manage to run a couple of iterations (number of iterations may vary), untill we get the following error:
Along this, we have noticed that no matter how many iterations we run, when we access X_b, Y_b, Y_p and try to visualize the first and second image of the batch, we always get the same prediction regardless of X_b and Y_b. It seems that Y_p that is generated from forwad(net, X_b) is somehow constant:
Since me and my lab partner do not pocess any formal training in deep learning and image segmentation, we find it challenging to connect the dots and overcome this problem. Any feedback regarding code or approach would be much appreciated.For our image segmentation task, we are trying to implement a custom training loop for our network, giving us more freedom to visualize predictions while training. Bellow follows parts of the code that should be key in identifying the underlying issue:
%% Classes
classNames = ["bg", "live", "nk", "round", "blob", "other"];
labelIDs = [0 192 255 1 2 3];
numClasses = 6;
%% Create mobilenet
network = ‘mobilenetv2’;
lgraph = deeplabv3plusLayers([224 224 3],numClasses,network);
% X our whole trainig data
[m, s] = calculate_input_params(single(X));
input_layer_new = imageInputLayer([224 224 3], "Normalization","zscore", "Mean",m, "StandardDeviation",s);
lgraph = replaceLayer(lgraph, "input_1", input_layer_new);
lgraph = removeLayers(lgraph, "classification");
%% Initialize network, training data and parameters
net = dlnetwork(lgraph);
mbq = minibatchqueue(ds_augmented, "MiniBatchSize",16, "MiniBatchFormat",["SSCB" "SSB"]);
numepochs = 3;
initialLearnRate = 0.01;
decay = 0.01;
momentum = 0.9;
vel = [];
%% Necessary code to avoid error
try
nnet.internal.cnngpu.reluForward(1);
catch ME
end
%% Train network
epoch = 0;
iteration = 0;
while epoch < numepochs
epoch = epoch + 1;
shuffle(mbq);
while hasdata(mbq)
iteration = iteration + 1;
epoch_iteration = [epoch iteration]
[X_b, Y_b] = next(mbq);
Y_b = adjust_dimensions(Y_b);
[loss,gradients,state] = dlfeval(@modelLoss,net,X_b,Y_b);
net.State = state;
loss
learnRate = initialLearnRate/(1 + decay*iteration);
[net, vel] = sgdmupdate(net, gradients, vel, learnRate, momentum);
end
end
function [loss,gradients,state] = modelLoss(net,X_b,Y_b)
classWeights = [1 10 10 10 10 10];
% Forward data through network.
[Y_p,state] = forward(net,X_b);
% Calculate cross-entropy loss.
loss = crossentropy(Y_p,Y_b,classWeights,’WeightsFormat’,’UC’,’TargetCategories’,’independent’);
% Calculate gradients of loss with respect to learnable parameters.
gradients = dlgradient(loss,net.Learnables);
end
Essentialy, when we run the Train network section, we manage to run a couple of iterations (number of iterations may vary), untill we get the following error:
Along this, we have noticed that no matter how many iterations we run, when we access X_b, Y_b, Y_p and try to visualize the first and second image of the batch, we always get the same prediction regardless of X_b and Y_b. It seems that Y_p that is generated from forwad(net, X_b) is somehow constant:
Since me and my lab partner do not pocess any formal training in deep learning and image segmentation, we find it challenging to connect the dots and overcome this problem. Any feedback regarding code or approach would be much appreciated. For our image segmentation task, we are trying to implement a custom training loop for our network, giving us more freedom to visualize predictions while training. Bellow follows parts of the code that should be key in identifying the underlying issue:
%% Classes
classNames = ["bg", "live", "nk", "round", "blob", "other"];
labelIDs = [0 192 255 1 2 3];
numClasses = 6;
%% Create mobilenet
network = ‘mobilenetv2’;
lgraph = deeplabv3plusLayers([224 224 3],numClasses,network);
% X our whole trainig data
[m, s] = calculate_input_params(single(X));
input_layer_new = imageInputLayer([224 224 3], "Normalization","zscore", "Mean",m, "StandardDeviation",s);
lgraph = replaceLayer(lgraph, "input_1", input_layer_new);
lgraph = removeLayers(lgraph, "classification");
%% Initialize network, training data and parameters
net = dlnetwork(lgraph);
mbq = minibatchqueue(ds_augmented, "MiniBatchSize",16, "MiniBatchFormat",["SSCB" "SSB"]);
numepochs = 3;
initialLearnRate = 0.01;
decay = 0.01;
momentum = 0.9;
vel = [];
%% Necessary code to avoid error
try
nnet.internal.cnngpu.reluForward(1);
catch ME
end
%% Train network
epoch = 0;
iteration = 0;
while epoch < numepochs
epoch = epoch + 1;
shuffle(mbq);
while hasdata(mbq)
iteration = iteration + 1;
epoch_iteration = [epoch iteration]
[X_b, Y_b] = next(mbq);
Y_b = adjust_dimensions(Y_b);
[loss,gradients,state] = dlfeval(@modelLoss,net,X_b,Y_b);
net.State = state;
loss
learnRate = initialLearnRate/(1 + decay*iteration);
[net, vel] = sgdmupdate(net, gradients, vel, learnRate, momentum);
end
end
function [loss,gradients,state] = modelLoss(net,X_b,Y_b)
classWeights = [1 10 10 10 10 10];
% Forward data through network.
[Y_p,state] = forward(net,X_b);
% Calculate cross-entropy loss.
loss = crossentropy(Y_p,Y_b,classWeights,’WeightsFormat’,’UC’,’TargetCategories’,’independent’);
% Calculate gradients of loss with respect to learnable parameters.
gradients = dlgradient(loss,net.Learnables);
end
Essentialy, when we run the Train network section, we manage to run a couple of iterations (number of iterations may vary), untill we get the following error:
Along this, we have noticed that no matter how many iterations we run, when we access X_b, Y_b, Y_p and try to visualize the first and second image of the batch, we always get the same prediction regardless of X_b and Y_b. It seems that Y_p that is generated from forwad(net, X_b) is somehow constant:
Since me and my lab partner do not pocess any formal training in deep learning and image segmentation, we find it challenging to connect the dots and overcome this problem. Any feedback regarding code or approach would be much appreciated. image segmentation, custom training loop, deep learning, negative trainedvariance MATLAB Answers — New Questions
How to maintain variable values between stateflow transitions
Hello,
I have a stateflow model which is modeling the State of Charge (SOC) of a battery as it cycles between charging and discharging. The stateflow diagram starts in charge and the SOC increases relative to the amount of time the charge is activated, and then the diagram transitions to discharge and the SOC decreases to relative to the amount of time the discharge state is activated. The SOC must maintain its value persisently through ‘charge’ and ‘discharge’ however everytime one cycle is completed and the stateflow transitions from discharge back to charge, SOC is reset. How do I avoid this reset? I want SOC to persist through multiple cycles and not be reset after each cycle.Hello,
I have a stateflow model which is modeling the State of Charge (SOC) of a battery as it cycles between charging and discharging. The stateflow diagram starts in charge and the SOC increases relative to the amount of time the charge is activated, and then the diagram transitions to discharge and the SOC decreases to relative to the amount of time the discharge state is activated. The SOC must maintain its value persisently through ‘charge’ and ‘discharge’ however everytime one cycle is completed and the stateflow transitions from discharge back to charge, SOC is reset. How do I avoid this reset? I want SOC to persist through multiple cycles and not be reset after each cycle. Hello,
I have a stateflow model which is modeling the State of Charge (SOC) of a battery as it cycles between charging and discharging. The stateflow diagram starts in charge and the SOC increases relative to the amount of time the charge is activated, and then the diagram transitions to discharge and the SOC decreases to relative to the amount of time the discharge state is activated. The SOC must maintain its value persisently through ‘charge’ and ‘discharge’ however everytime one cycle is completed and the stateflow transitions from discharge back to charge, SOC is reset. How do I avoid this reset? I want SOC to persist through multiple cycles and not be reset after each cycle. stateflow, variables MATLAB Answers — New Questions
How to customize function name for e-coder generated lookup table file?
I’m having trouble ingrating e-coder generated files for 2 models as both models generate similar functions for a lookup table, except datatype of 1 of the inputs to the function. Is there a way to customize function names for lookup tables?I’m having trouble ingrating e-coder generated files for 2 models as both models generate similar functions for a lookup table, except datatype of 1 of the inputs to the function. Is there a way to customize function names for lookup tables? I’m having trouble ingrating e-coder generated files for 2 models as both models generate similar functions for a lookup table, except datatype of 1 of the inputs to the function. Is there a way to customize function names for lookup tables? lookup table MATLAB Answers — New Questions
How to automatically add some code content at any place in the code generated by simulink
simulink code:
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
Object Code:
#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED
#include "ASW_MemMap.h"
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED
include "ASW_MemMap.h"
how to add “#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED #include "ASW_MemMap.h” and“#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED include "ASW_MemMap.h"” in front of "/* Const memory section */ " and
behind "const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */"simulink code:
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
Object Code:
#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED
#include "ASW_MemMap.h"
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED
include "ASW_MemMap.h"
how to add “#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED #include "ASW_MemMap.h” and“#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED include "ASW_MemMap.h"” in front of "/* Const memory section */ " and
behind "const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */" simulink code:
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
Object Code:
#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED
#include "ASW_MemMap.h"
/* Const memory section */
/* Definition for custom storage class: Const */
const uint8_T SFCMM_ABSFunc_Active = 1U;/* Referenced by:
* ‘<S35>/Constant127’
* ‘<S35>/Constant90’
* ‘<S104>/Constant127’
* ‘<S104>/Constant90’
* ‘<S151>/Constant127’
* ‘<S151>/Constant90’
*/
const uint8_T SFCMM_AEBFuncConfig_Open = 1U;/* Referenced by: ‘<S9>/Constant15’ */
const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */
#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED
include "ASW_MemMap.h"
how to add “#define ASW_QM_COM_MODULE_START_SEC_CONST_UNSPECIFIED #include "ASW_MemMap.h” and“#define ASW_QM_COM_MODULE_STOP_SEC_CONST_UNSPECIFIED include "ASW_MemMap.h"” in front of "/* Const memory section */ " and
behind "const uint8_T SFCMM_AEBFuncSwitch_Open = 1U;/* Referenced by: ‘<S9>/Constant17’ */" code generation MATLAB Answers — New Questions
export of coefficients from FDATool into Workspace
I exported a coefficient from the FDATool but when I run the script with the coefficient, the coefficient disappears from the workspace and ‘Undefined function or variable ‘Num’.’ appears as the error.
But when the same command is entered into the Command Window, it is running perfectly and the variable from the workspace does not disappear.
Please Help.I exported a coefficient from the FDATool but when I run the script with the coefficient, the coefficient disappears from the workspace and ‘Undefined function or variable ‘Num’.’ appears as the error.
But when the same command is entered into the Command Window, it is running perfectly and the variable from the workspace does not disappear.
Please Help. I exported a coefficient from the FDATool but when I run the script with the coefficient, the coefficient disappears from the workspace and ‘Undefined function or variable ‘Num’.’ appears as the error.
But when the same command is entered into the Command Window, it is running perfectly and the variable from the workspace does not disappear.
Please Help. exporting coefficients MATLAB Answers — New Questions
Read rosbag file – change between R2018b to R2020b
Hi,
In MATLAB R2018b I was using the command
Bag = rosbag(RosbagFileName)
and it was working fine.
When trying to use the same command with the same file on MATLAB R2020, I get the follwoing error:
The class ros.Bag has no Constant property or Static method named ‘parse’.
Any idea what could be the problem?Hi,
In MATLAB R2018b I was using the command
Bag = rosbag(RosbagFileName)
and it was working fine.
When trying to use the same command with the same file on MATLAB R2020, I get the follwoing error:
The class ros.Bag has no Constant property or Static method named ‘parse’.
Any idea what could be the problem? Hi,
In MATLAB R2018b I was using the command
Bag = rosbag(RosbagFileName)
and it was working fine.
When trying to use the same command with the same file on MATLAB R2020, I get the follwoing error:
The class ros.Bag has no Constant property or Static method named ‘parse’.
Any idea what could be the problem? rosbag, read rosbag, r2018b, r2020b MATLAB Answers — New Questions
ROS simulink controller is slow
I am trying to build a controller in simulink to interact with ROS and custom simulation of my robot. The controller is rather complex, and involves communication with several topics.
When I try to publish the setpoints to the controller the controller runs very slowly to the point it cannot be used. Is there a way I can speed up the controller to make it run in real time? Should I be exported the code to C++ then tuning my model parameters from there? I know that this is very vague question, I apperate any help.I am trying to build a controller in simulink to interact with ROS and custom simulation of my robot. The controller is rather complex, and involves communication with several topics.
When I try to publish the setpoints to the controller the controller runs very slowly to the point it cannot be used. Is there a way I can speed up the controller to make it run in real time? Should I be exported the code to C++ then tuning my model parameters from there? I know that this is very vague question, I apperate any help. I am trying to build a controller in simulink to interact with ROS and custom simulation of my robot. The controller is rather complex, and involves communication with several topics.
When I try to publish the setpoints to the controller the controller runs very slowly to the point it cannot be used. Is there a way I can speed up the controller to make it run in real time? Should I be exported the code to C++ then tuning my model parameters from there? I know that this is very vague question, I apperate any help. ros, simulink MATLAB Answers — New Questions
AUTOSAR Code Generation Error in 2023b
Hi,
I have question because there is an error during the generation of the AUTOSAR Code
That Error comes from my laptop,
Below is the contents of the errorHi,
I have question because there is an error during the generation of the AUTOSAR Code
That Error comes from my laptop,
Below is the contents of the error Hi,
I have question because there is an error during the generation of the AUTOSAR Code
That Error comes from my laptop,
Below is the contents of the error autosar code generation, simulink MATLAB Answers — New Questions
How to Fix “Warning: Colon operands must be real scalars” Warning
When I run the code below, it works as I wanted, but I get a warning. I tried different things to fix it, but of no avail. How can I refactor my code so that I will not face any related issue as the warning states if I can?
ply_nums_range = [4, 8, 16, 32, 64];
x = rand(1, 2);
data = cartesian_product({b_range, …
N_xx_range, …
N_yy_range, …
N_xy_range, …
ang_range});
for e = ply_nums_range
ply_nums = e;
for i = 1:length(data)
b = data(i, 1);
N_xx = data(i, 2);
N_yy = data(i, 3);
N_xy = data(i, 4);
ang = data(i, 5);
iteration = [a, …
b, …
N_xx, …
N_yy, …
N_xy, …
[PLY_ANGS(ang, x), flip(PLY_ANGS(ang, x))]];
thetas = cell(1, ply_nums);
for j = 1:ply_nums
thetas{j} = sprintf("theta_%d", j);
end
variable_names = ["a", "b", "N_xx", "N_yy", "N_xy", thetas];
table_data = array2table(iteration, …
‘VariableNames’, …
variable_names);
sheet_name = sprintf("%d_ply_case", e);
writetable(table_data, …
"design-cases/case.xlsx", …
‘WriteMode’, ‘Append’, …
‘Sheet’, sheet_name);
end
end
Console output:
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
> In matlab.io.spreadsheet.internal.write.writeXLSFile>getRangeToWrite (line 575)
In matlab.io.spreadsheet.internal.write.writeXLSFile (line 262)
In writetable (line 426)
In test_case (line 72)When I run the code below, it works as I wanted, but I get a warning. I tried different things to fix it, but of no avail. How can I refactor my code so that I will not face any related issue as the warning states if I can?
ply_nums_range = [4, 8, 16, 32, 64];
x = rand(1, 2);
data = cartesian_product({b_range, …
N_xx_range, …
N_yy_range, …
N_xy_range, …
ang_range});
for e = ply_nums_range
ply_nums = e;
for i = 1:length(data)
b = data(i, 1);
N_xx = data(i, 2);
N_yy = data(i, 3);
N_xy = data(i, 4);
ang = data(i, 5);
iteration = [a, …
b, …
N_xx, …
N_yy, …
N_xy, …
[PLY_ANGS(ang, x), flip(PLY_ANGS(ang, x))]];
thetas = cell(1, ply_nums);
for j = 1:ply_nums
thetas{j} = sprintf("theta_%d", j);
end
variable_names = ["a", "b", "N_xx", "N_yy", "N_xy", thetas];
table_data = array2table(iteration, …
‘VariableNames’, …
variable_names);
sheet_name = sprintf("%d_ply_case", e);
writetable(table_data, …
"design-cases/case.xlsx", …
‘WriteMode’, ‘Append’, …
‘Sheet’, sheet_name);
end
end
Console output:
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
> In matlab.io.spreadsheet.internal.write.writeXLSFile>getRangeToWrite (line 575)
In matlab.io.spreadsheet.internal.write.writeXLSFile (line 262)
In writetable (line 426)
In test_case (line 72) When I run the code below, it works as I wanted, but I get a warning. I tried different things to fix it, but of no avail. How can I refactor my code so that I will not face any related issue as the warning states if I can?
ply_nums_range = [4, 8, 16, 32, 64];
x = rand(1, 2);
data = cartesian_product({b_range, …
N_xx_range, …
N_yy_range, …
N_xy_range, …
ang_range});
for e = ply_nums_range
ply_nums = e;
for i = 1:length(data)
b = data(i, 1);
N_xx = data(i, 2);
N_yy = data(i, 3);
N_xy = data(i, 4);
ang = data(i, 5);
iteration = [a, …
b, …
N_xx, …
N_yy, …
N_xy, …
[PLY_ANGS(ang, x), flip(PLY_ANGS(ang, x))]];
thetas = cell(1, ply_nums);
for j = 1:ply_nums
thetas{j} = sprintf("theta_%d", j);
end
variable_names = ["a", "b", "N_xx", "N_yy", "N_xy", thetas];
table_data = array2table(iteration, …
‘VariableNames’, …
variable_names);
sheet_name = sprintf("%d_ply_case", e);
writetable(table_data, …
"design-cases/case.xlsx", …
‘WriteMode’, ‘Append’, …
‘Sheet’, sheet_name);
end
end
Console output:
Warning: Colon operands must be real scalars. This warning will become an error in a future release.
> In matlab.io.spreadsheet.internal.write.writeXLSFile>getRangeToWrite (line 575)
In matlab.io.spreadsheet.internal.write.writeXLSFile (line 262)
In writetable (line 426)
In test_case (line 72) cell, array, table MATLAB Answers — New Questions
How to convert image into matrix
Dear readers, i am new to matlab and want to learn how to convert or represent a picture in bmp or jpeg format in matrix form so that manipulations can be carried out on it.
your suggestions will be worth for me..
suyash bhardwajDear readers, i am new to matlab and want to learn how to convert or represent a picture in bmp or jpeg format in matrix form so that manipulations can be carried out on it.
your suggestions will be worth for me..
suyash bhardwaj Dear readers, i am new to matlab and want to learn how to convert or represent a picture in bmp or jpeg format in matrix form so that manipulations can be carried out on it.
your suggestions will be worth for me..
suyash bhardwaj image processing MATLAB Answers — New Questions
Why do I receive “Products Already Installed” when installing MathWorks products?
Why do I receive "Products Already Installed" when installing MathWorks products?Why do I receive "Products Already Installed" when installing MathWorks products? Why do I receive "Products Already Installed" when installing MathWorks products? why do i receive "products already installed" when MATLAB Answers — New Questions
removing quotes from table
Hi,
I have a table with gregorian time that loads as having single quotes around it. This is giving me issues when I want to do table2timetable.
How do I remove the quotes so I can convert to timetable?
Thanks!Hi,
I have a table with gregorian time that loads as having single quotes around it. This is giving me issues when I want to do table2timetable.
How do I remove the quotes so I can convert to timetable?
Thanks! Hi,
I have a table with gregorian time that loads as having single quotes around it. This is giving me issues when I want to do table2timetable.
How do I remove the quotes so I can convert to timetable?
Thanks! removing quotes, timetable MATLAB Answers — New Questions
Warning: Not enough data imported. Attempt to read… (Dicominfo/Dicomdisp)
Hello,
I would like to ask how to solve this issue in matlab, while I am trying to read several dicom images I have got from PACS. Radiant application shows images normally, but Matlab does not recognise the size of them, width and height, and I am getting this warning as well, when i call dicominfo:
The second number of bytes (only read) is the actual size of my picture(.dcm), and however, Matlab attempts to read like 1,3Gb of data, instead the actual size of it which is 12Mb.
Also, when i use dicomdisp i get the following:
I have highlighted where i find the actual size, in that private attribute, and also noticed how there is no location 6182 (it ends at 6170), and there are some more attributes which their size is like 4.3 Gb. Is reading it on IEEE little-endian machine related with my computer or PACS? Could that be the reason? Widh and Height attributes are both in dicomdisp and Radiant (Dicom Viewer Application) shown as WindowWidth/WindowCenter and WL/WW respectively. Therefore, it could be some sort of incompatibility between headers/attributes from one source to another?
Is it something to do with their actual size of my dicom pictures, which is rather too much for my laptop to handle? They are 2k x 4k resolution. So, since my screen doesnt support that resolution, maybe that’s why Matlab open just a blank figure? Still, shouldnt it have been able to read width and height with dicominfo?
In addition to that, in line (63) at dicominfo.m describes some issues about parsing the dicom file and its attributes, but I am not sure if it is related with the previous issue.
Any help would be grateful.Hello,
I would like to ask how to solve this issue in matlab, while I am trying to read several dicom images I have got from PACS. Radiant application shows images normally, but Matlab does not recognise the size of them, width and height, and I am getting this warning as well, when i call dicominfo:
The second number of bytes (only read) is the actual size of my picture(.dcm), and however, Matlab attempts to read like 1,3Gb of data, instead the actual size of it which is 12Mb.
Also, when i use dicomdisp i get the following:
I have highlighted where i find the actual size, in that private attribute, and also noticed how there is no location 6182 (it ends at 6170), and there are some more attributes which their size is like 4.3 Gb. Is reading it on IEEE little-endian machine related with my computer or PACS? Could that be the reason? Widh and Height attributes are both in dicomdisp and Radiant (Dicom Viewer Application) shown as WindowWidth/WindowCenter and WL/WW respectively. Therefore, it could be some sort of incompatibility between headers/attributes from one source to another?
Is it something to do with their actual size of my dicom pictures, which is rather too much for my laptop to handle? They are 2k x 4k resolution. So, since my screen doesnt support that resolution, maybe that’s why Matlab open just a blank figure? Still, shouldnt it have been able to read width and height with dicominfo?
In addition to that, in line (63) at dicominfo.m describes some issues about parsing the dicom file and its attributes, but I am not sure if it is related with the previous issue.
Any help would be grateful. Hello,
I would like to ask how to solve this issue in matlab, while I am trying to read several dicom images I have got from PACS. Radiant application shows images normally, but Matlab does not recognise the size of them, width and height, and I am getting this warning as well, when i call dicominfo:
The second number of bytes (only read) is the actual size of my picture(.dcm), and however, Matlab attempts to read like 1,3Gb of data, instead the actual size of it which is 12Mb.
Also, when i use dicomdisp i get the following:
I have highlighted where i find the actual size, in that private attribute, and also noticed how there is no location 6182 (it ends at 6170), and there are some more attributes which their size is like 4.3 Gb. Is reading it on IEEE little-endian machine related with my computer or PACS? Could that be the reason? Widh and Height attributes are both in dicomdisp and Radiant (Dicom Viewer Application) shown as WindowWidth/WindowCenter and WL/WW respectively. Therefore, it could be some sort of incompatibility between headers/attributes from one source to another?
Is it something to do with their actual size of my dicom pictures, which is rather too much for my laptop to handle? They are 2k x 4k resolution. So, since my screen doesnt support that resolution, maybe that’s why Matlab open just a blank figure? Still, shouldnt it have been able to read width and height with dicominfo?
In addition to that, in line (63) at dicominfo.m describes some issues about parsing the dicom file and its attributes, but I am not sure if it is related with the previous issue.
Any help would be grateful. dicominfo MATLAB Answers — New Questions
error in concatenating cells
Hello Dear,
I have 1×50 cell (ftData728178E.trial) in a struct. Each cell has a 192×2301 double. After I concatenate the cell to make a matrix of 192x2301x50, the matrix turns into nan. I wonder why it is and what the correct way to turn cells into a matrix. Thanks,
ET
ft_epoch = cat(3, ftData728178E.trial{:});Hello Dear,
I have 1×50 cell (ftData728178E.trial) in a struct. Each cell has a 192×2301 double. After I concatenate the cell to make a matrix of 192x2301x50, the matrix turns into nan. I wonder why it is and what the correct way to turn cells into a matrix. Thanks,
ET
ft_epoch = cat(3, ftData728178E.trial{:}); Hello Dear,
I have 1×50 cell (ftData728178E.trial) in a struct. Each cell has a 192×2301 double. After I concatenate the cell to make a matrix of 192x2301x50, the matrix turns into nan. I wonder why it is and what the correct way to turn cells into a matrix. Thanks,
ET
ft_epoch = cat(3, ftData728178E.trial{:}); cell, concatention, matrix MATLAB Answers — New Questions