我从三个文件导入数据并解析它以从每个文件中获取时间和电压值。这些值需要在同一图上相互绘制。
数据总共保存在六个矩阵中,一个用于时间,一个用于三个数据集中的每一个的电压。
矩阵尺寸: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');
答案 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');