%Sampling Frequency
f=8000;

%Sampling Time
t=5;
%Data imported from microsoft Excel
matrix=Book2S1;

%Size Matrix
s=size(matrix);
h=s(1,1);
w=s(1,2);

%Set Up Rows and Columns
rows=(0:(f/2)/(h-1):f/2);
columns=(0:t/(w-1):t);

%plot
mesh(columns,rows,matrix);
xlabel('Time, s')
ylabel('Frequency, Hz')
zlabel('Power Spectral Density, V^2/Hz')`enter code here

Este es el código que escribo para intentar obtener un gráfico en 3D. El objetivo es que obtenga un gráfico que se parezca a la imagen que se muestra a continuación, pero sigo obteniendo un error de malla

Error al usar la malla (línea 139) Las entradas de datos deben ser numéricas, de fecha y hora, de duración, matrices categóricas u objetos que se puedan convertir a dobles.

Error en la malla Lab_3_1 (línea 21) (columnas, filas, matriz);

Cómo se supone que debe ser mi trama La imagen no quería ser guardada después de ser recortada, lo siento gente.

El siguiente es un enlace a la mitad de los datos que se utilizan para este gráfico.

0
Albert Garcia 14 nov. 2017 a las 04:31

2 respuestas

La mejor respuesta

Intente sustituir su matriz de 4049x50 reemplazando mi matriz aleatoria f:

% t=5;
% fs = 8000;
lower = -60;
upper = 20;
f = (upper-lower).*rand(4049,50) + lower;
% s=size(f);
% h=s(1,1);
% w=s(1,2);
% rows=(0:(fs/2)/(h-1):fs/2);
% columns=(0:t/(w-1):t);
mesh(f);
colormap('jet');
colorbar;
xlabel('Time, s')
ylabel('Frequency, Hz')
zlabel('Power Spectral Density V^2/Hz')
ylim([0 4000])
zlim([-100 40])

Usando la matriz de datos aleatorios f, obtengo esto:

3D plot

0
Louis Leung 14 nov. 2017 a las 04:09

Descubrí que los valores que se importaron a MATLAB se convirtieron en valores de cadena. Dejé de usar el botón de importación y usé la función xlsread en su lugar, y eso me permitió importar los valores numéricos sin que se convirtieran en cadenas.

Código terminado

Trazado 3D resultante

Gracias a todos por la ayuda y por solucionar el problema.

0
Albert Garcia 14 nov. 2017 a las 06:00