Matlab处理心电信号遇到的问题

1.如何保存.Mat文件
运行上面的代码,在工作区会生成M.mat文件,右键可以选择另存为,存到你想存的地址下面。
2.得到了波形图和mat文件,然后对这个心电图进行滤波,该怎么处理
最笨的方法就是把.mat文件保存,另外再读取滤波,或者可以读完数据直接写你的滤波程序。(https://blog.csdn.net/xxty1122/article/details/75040552
3.标准十二导联动态心电图的导联间冗余计算公式
[cpp] view plain copy
II = I + III (1)
aVR = -0.5 * ( I + II ) (2)
aVL = I - 0.5 * II (3)
aVF = II - 0.5 * I (4)
4. MATLAB读取mat数据并绘图
close all;
clear all;
clc;
m=load(‘a.mat’);//a是一个结构体类型的mat数据
n=load(‘b.mat’);
y = m.pr_cruve(:,1);//pr_cruve是结构体a中的矩阵部分的数据,获取第一列的数据作为纵坐标
x = m.pr_cruve(:,2);//获取第二列的数据作为纵坐标
Y = n.pr_cruve(:,1);
X = n.pr_cruve(:,2);
plot (x,y,’*-‘,X,Y,’o-‘);
axis([0,1,0,1]);
5.matlab:导入文件夹内所有.mat文件
需求:需要导入一个文件夹内的所有mat文件
解决方案
利用dir()函数获取该文件夹下的所有.mat文件名
利用for循环,循环load()所有文件名
实例
读入这个文件夹‘I:\learn\EE\task1\T=50’下的所有mat文件,将其中的vol1,vol2字段读出来
prefix=(‘I:\learn\EE\task1\T=50\’);
d=dir([prefix,’*.mat’]);
for i=1:length(d)
t(i)=load([prefix,d(i).name],’vol1’,’vol2’) ;
end
6.mat文件与m文件的区别及应用
1)区别

.M文件是保存一段代码的文件,类似于C语言中的一个函数体; 这也是MATLAB中最常见的文件保存格式之一

.mat是matlab的数据存储的标准格式。也就是你操作产生的数据的一个集合包,可以把一次处理的结果保存,供下一次使用。

2).mat文件应用

第一、用load命令,具体为load+文件名.mat,就可以将mat中的数据放到工作空间里,然后操作

第二、用save命令,具体为save+文件名(自己取一个).mat,就可以将当前工作区间里的数据保存下来供调用了
举例;
a=[1 2 3 4 5 6 7 8 9 10];
save(‘var.mat’,’a’); %将变量a保存在var.mat文件中

%下面是调用
b=load(‘var.mat’,’a’); %将var.mat中的变量a读取出,放在b中

7.matlab括号使用
1)[ ]用来定义非cell数组,矩阵
2){}用来定义cell的数组,矩阵
3) ()用来引用数组,矩阵

8.提取数据画图
提取a矩阵的第9列的第2行到第8行,作为x,然后b矩阵同样的位置的元素作为y,画图。
plot(a(2:8,9),b(2:8,9))

9.画图后坐标轴调整
那调整坐标轴呢?比如逆序坐标轴原点位置改动。比如横坐标是1~0,纵坐标0到1
坐标轴非零点设置,需要把图画出来,再设置的

10.矩阵的点乘运算
x1={1,2,3,4,5,6,7,8……},x2矩阵的每一个元素是x1相同位置元素的 平方的倒数
x2=(x1).^(-2)

11..mat的心电数据作图
有12*7500的struct类型的.mat,12表示12条心电数据
1)取第一条心电作图(matlab中的变量可以点开看数据存储,及数值)

plot((1:7500),(ECG.data(1,1:7500)))
更简单:plot(ECG.data(1,:))
2)通过for作12条心电图
for row=1:12
subplot(3,4,row);
plot((1:7500),(ECG.data(row,1:7500)))
end
(注:一个figure同时放12条心电)
或者

for row=1:12
figure(row);
plot((1:7500),(ECG.data(row,1:7500)))
end
(注:12条心电12figure,如果不指明多个figure,每次做的图都会覆盖上次的图,显示在同一个figure里)

猜你喜欢

转载自blog.csdn.net/qq_26938759/article/details/79888325