Error: Data must be numeric, datetime, duration, categorical, or an array convertible to double.
19 次查看(过去 30 天)
显示 更早的评论
Hello everyone,
I am trying to plot a function that has two different variables: theta and phi.
Theta = -pi/2:0.1:pi/2
Phi = Specific Values at 0 and pi/2
I have an error that says:
"Error: Data must be numeric, datetime, duration, categorical, or an array convertible to double."
I've tried looking up this error on different discussions. However, I wasn't able to find anything that helped with my specific scenario.
I have tried different methods and approaches: Using "symbolic variables", fimplicit function, fplot function, etc. However, I got different errors everytime I tried a different approach.
I attached my code for reference:
Plotting_Theta_Phi_Function.m
0 个评论
采纳的回答
Voss
2024-7-7
tic
close all; clc;
% Declaring Theta and Phi Variables
theta = 0:0.1:pi/2;
% Phi Values
phi_E_Plane = 0;
phi_H_Plane = pi/2;
phi = [phi_E_Plane, phi_H_Plane];
% Declaring x and y variables as theta and phi
x = sin(phi);
y = cos(theta);
% Function Z is a combination of x and y
Z = @(x,y) x.^2.*y + y.^2.*x;
% Calculating E-Plane and H-Plane "values"
E_Plane = Z(theta,phi(1));
H_Plane = Z(theta,phi(2));
% Plotting E-Plane = Theta Range at phi = 0
plot(theta,E_Plane);
% Holding on to put the H-Plane on the same grid as the E-Plane
hold on;
% Plotting H-Plane = Theta Range at phi = pi/2
plot(theta,H_Plane);
% Placing a grid on the graph
grid on;
% Title, Axes, and Legends
title('E-Plane (dB) and H-Plane (dB) versus Theta (Radians)');
legend({'E-Plane','H-Plane'},'Location','northwest');
xlabel('Theta (Radians)');
ylabel('Magnitude (dB)');
toc
5 个评论
Voss
2024-7-8
The function F (or getZ as I called it) would only calculate Z given theta and phi. Everything else would be outside the function, either in a script or in separate functions if you prefer.
更多回答(1 个)
Torsten
2024-7-7
% Declaring Theta and Phi Variables
theta = 0:0.1:pi/2;
% Phi Values
phi_E_Plane = 0;
phi_H_Plane = pi/2;
% Declaring x and y variables as theta and phi
x = @(phi)sin(phi);
y = @(theta)cos(theta);
% Declaring the function Z as a function of theta and phi
F = @(theta,phi)x(phi).^2.*y(theta) + y(theta).^2.*x(phi);
% Calculating E-Plane and H-Plane "values"
E_Plane = F(theta,phi_E_Plane);
H_Plane = F(theta,phi_H_Plane);
% Plotting E-Plane = Theta Range at phi = 0
plot(theta,E_Plane);
% Holding on to put the H-Plane on the same grid as the E-Plane
hold on;
% Plotting H-Plane = Theta Range at phi = pi/2
plot(theta,H_Plane);
% Placing a grid on the graph
grid on;
% Title, Axes, and Legends
title('E-Plane (dB) and H-Plane (dB) versus Theta (Radians)');
legend({'E-Plane','H-Plane'},'Location','northwest');
xlabel('Theta (Radians)');
ylabel('Magnitude (dB)');
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!