2016-04-22 5 views
0

3つのファイルからデータをインポートして解析し、各ファイルから時間と電圧の値を取得します。これらの値は、同じプロット上で互いにプロットする必要があります。MATLAB - 同じプロット上の異なるサイズの行列をプロットする - プロット関数のエラー

データは、3つのデータセットのそれぞれについて時間と電圧の合計6つのマトリックスに保持されます。

マトリックスの寸法:matlabのデータセット:1000x1、ltspice:465x1、oscope:2500x1。

plot(matlab_t,matlab_v,'k',ltspice_t,ltspice_v,'j',oscope_t,oscope_v,'g'); 

行列の次元が独立および従属セット間で異なるため、これは問題です:

MATLABは、プロット機能の使用中にエラーを発見しますか?スクリプトの

フルコード:

clear; 
clc; 

%% Import 
%Read in files 

matlab_t=dlmread('ENGR_222_Project_1_data.csv',',',[16 0 1015 0]); 
matlab_v=dlmread('ENGR_222_Project_1_data.csv',',',[16 1 1015 1]); 

ltspice_t=xlsread('ltspicedata_excel.xlsx','A1:A465'); 
ltspice_v=xlsread('ltspicedata_excel.xlsx','B1:B465'); 

oscope_t=xlsread('oscope_data.xlsx','D1:D2500'); 
oscope_v=xlsread('oscope_data.xlsx','E1:E2500'); 

%% Plot 

plot(matlab_t,matlab_v,'k',ltspice_t,ltspice_v,'j',oscope_t,oscope_v,'g'); 
+0

はい。グラフをプロットするには、X軸とY軸の両方が同じ次元である必要があります。両方の次元を同じにして、グラフをプロットできるはずです –

+0

@AswinPJどうすればいいですか?時間領域は、各時間行列に対して異なるように増分される。 – 0x1000001

+0

問題をmatlab_t、matlab_v、ltspice_t、ltspice_v、oscope_t、oscope_vの次元で更新できますか? –

答えて

1

同じプロット上に複数の行列をプロットし、各マトリックスは、同じ寸法を有していなければなりません。 2つの465×1行列、2つの1000×1行列、および2つの2500×1行列がある場合、すべての行列の次元は2500×1でなければなりません。

小さい行列の次元を大きくするには、行列をそのサイズに再定義し、空のセルをゼロに等しく設定します。

これは、次のコードで実現されます。

matlab_t(2500,1)=0; 
matlab_v(2500,1)=0; 
ltspice_t(2500,1)=0; 
ltspice_v(2500,1)=0; 

修正を使用して完全なコード:

clear; 
clc; 

%% Import 
%Read in files 

matlab_t=dlmread('ENGR_222_Project_1_data.csv',',',[16 0 1015 0]); 
matlab_v=dlmread('ENGR_222_Project_1_data.csv',',',[16 1 1015 1]); 

ltspice_t=xlsread('ltspicedata_excel.xlsx','A1:A465'); 
ltspice_v=xlsread('ltspicedata_excel.xlsx','B1:B465'); 

oscope_t=xlsread('oscope_data.xlsx','D1:D2500'); 
oscope_v=xlsread('oscope_data.xlsx','E1:E2500'); 

% Redefine matrices to equal size 

matlab_t(2500,1)=0; 
matlab_v(2500,1)=0; 
ltspice_t(2500,1)=0; 
ltspice_v(2500,1)=0; 

%% Plot 

plot(matlab_t,matlab_v,'k',ltspice_t,ltspice_v,'j',oscope_t,oscope_v,'g'); 
関連する問題