2017-11-14 21 views
0
%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 

これは、3Dプロットを取得するために入力するコードです。目指すのは、以下の画像のようなプロットを得ることですが、メッシュエラーが続きます。MATLAB、分光器データの4049行×50列を3Dプロットに変換

メッシュを使用したときのエラー(行139) データ入力は数値、日時、期間、カテゴリ配列またはオブジェクトでなければなりませんそれは 倍に変換することができます。

Lab_3_1(行21)のエラー メッシュ(列、行、マトリックス)。

What my plot is supposed to look like. クロップした後、画像を保存したくない、申し訳ありません。

以下は、このプロットで使用されているデータの半分のリンクです。 https://docs.google.com/spreadsheets/d/e/2PACX-1vRMWfmFYDnwMSPzahD8k-aWAXHstbNRdlY4gmOHJoXkLaBb4PY7zF5-41yFkQHR4g0w3LrMFiz3ZqWJ/pubhtml

+0

データの形式がわかるように、サンプルデータを追加するか、Book2S1をアップロードする必要があります。 – jodag

+0

コンピュータが全体をインポートできなかったため、データの半分しか追加しませんでした。 –

答えて

0

私のランダム行列Fを置き換えるあなたの4049x50行列を代入してみてください。

% 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]) 

ランダムデータ行列Fを使用して、私はこれを取得:

3D plot

+0

ありがとう –

0

私は値することを考え出しましたMATLABにインポートされた文字列は文字列値に変換されました。私は、インポートボタンを使用して停止し、代わりにxlsread関数を使用し、それは文字列に変換されていない数値をインポートすることができました。

Finished Code

Resulting 3D Plot

あなたの助けのためのみんなに感謝して、問題を見ています。

関連する問題