Error: Data must be numeric, datetime, duration, categorical, or an array convertible to double.
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Voss
le 7 Juil 2024
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 commentaires
Voss
le 8 Juil 2024
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.
Plus de réponses (1)
Torsten
le 7 Juil 2024
% 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)');
1 commentaire
Voir également
Catégories
En savoir plus sur Annotations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!