MATLAB - 在同一绘图上绘制不同大小的矩阵 - 绘图函数中的误差

时间:2016-04-22 03:31:29

标签: matlab matrix plot

我从三个文件导入数据并解析它以从每个文件中获取时间和电压值。这些值需要在同一图上相互绘制。

数据总共保存在六个矩阵中,一个用于时间,一个用于三个数据集中的每一个的电压。

矩阵尺寸:matlab数据集:1000x1,ltspice:465x1,oscope:2500x1。

Matlab在使用绘图函数时发现错误:

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

这是一个问题,因为矩阵维度在独立集和从属集之间有所不同吗?

脚本的完整代码:

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');

1 个答案:

答案 0 :(得分:1)

要在同一图上绘制多个矩阵,每个矩阵必须具有相同的尺寸。在我们有两个465 X 1矩阵,两个1000 X 1矩阵和两个2500 X 1矩阵的情况下,所有矩阵的尺寸必须为2500 X 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');