Bonjour,
Nous travaillons à partir d'un fichier excel qui est une matrice contenant des niveaux en dB de taille 13751x31. Nous aimerions a partir de cette matrice tracer un graphique en 3D avec en abscisse le temps (x) , en ordonnée les fréquences (y) et en z le niveau contenu dans le fichier excel. Habituellement nous tracon ce graphe sous excel, mais nous étions limités en nombre de points, donc nous aurions aimé essayé de refaire ce type de graphe sous matlab. Et nous voila bloqués.


Le programme en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
clear all
close all
z=xlsread('fichiertest.xls');
y=[20 25 31.5 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1000 1250 1600 2000 2500 3150 4000 5000 6300 8000 10000 12500 16000 20000];
B=z(:,1);
p=input('donnez le pas temporel (en seconde) :');
t=length(B);
vtps=linspace(0,t*p,t);
x=vtps';
figure
plot3(x,y,z);
Le message d'erreur :
??? Error using ==> plot3
Vectors must be the same lengths.
Les variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
  Name       Size         Bytes  Class
 
  B      13751x1         110008  double array
  p          1x1              8  double array
  t          1x1              8  double array
  vtps       1x13751     110008  double array
  x      13751x1         110008  double array
  y          1x31           248  double array
  z      13751x31       3410248  double array
 
Grand total is 467567 elements using 3740536 bytes


Si quelqu'un sait comment nous aider, ou si besoin de plus de precisions, n'hesitez pas !!!
Merci