MATLAB指令

matlab207的安装:

安装方法:https://blog.csdn.net/gisboygogogo/article/details/76793803

当时复制了此文件就可以打开安装的matlab,没有任何错误提示框弹出。

 

当一个工程文件中的文件过多,移植程序时,先看清楚程序中调用的路径是否能对上,对上后再运行程序

路径:

1、选择工程文件所在的目录(不同.m文件放在同一目录下)

2、关于路径的问题,好像只能将.m文件放在一个文件夹中,在文件夹中再放文件夹(调用函数)总是提示某个函数找不到

全部放在一个文件夹中,就没有问题了

 

数据获取方法:

1、load直接加载txt文本数据

用fopen函数不能读出数据,只能打开文件,取出数据必须用load函数。若不能打开指定文件,fopen函数返回-1

2、加速度数据

取第一列时间数据和x轴加速度数据

3、读取csv格式的数据,直接使用csvread函数

filename='/Users/Steven Xiao/Desktop/wifi感知/X4M03开发板/datum.csv';
aa = csvread(filename);
plot(aa(1,:))

4、保存变量

csvwrite('total_wave.csv',total_wave);,第一个参数是文件名和文件格式,第二个参数是变量矩阵,保存在运行路径下

 

下标索引必须为正整数

matlab下标索引必须为正整数类型或逻辑类型。取范围时只能从正数开始取

 

数据保存

1,将所需变量保到txt文本中

filename='F:\指夹、手环、Biopac实验数据(志愿者)\E4数据\李志成_1532571159_A01671\BVP.csv';%2018/7/26 10:12:39
bvp=load(filename);

bvp1=bvp(19200:23040);
fop=fopen('2_25.txt','w');
for i=1:(length(bvp1))
    a=bvp1(i,1);

    fprintf(fop,'%g ',bvp1(i,1));
    fprintf(fop,'\n');

end
fclose(fop);

①虽然结果中不是一行行显示,但是已经进行了换行处理

②fclose(fop);必须在end后

 

基本操作

1、close all % 可以一次关闭所有figure

 

调试方法:

断点直接使用鼠标打在语句的最前面

(2) 执行:F5。

(3) 单步执行:F10。

(4) step in:F11。

(5) step out:Shift+F11

 

时间戳(单位为秒)转化为时间方法:

1、直接使用在线工具转化http://tool.chinaz.com/Tools/unixtime.aspx

同样把时间转化为时间戳

 

常见错误:

1、关于找不到.m文件的提示

在一个.m文件中调用另一个.m文件时,直接用.m的文件名作为函数,不用.m中的函数名function后面的内容。所以函数名最好和.m文件的名称一样

main中的函数名不能写成ideal_bandpassing,否则ctr+D时就会出现下面错误

 

 

画图:

https://blog.csdn.net/jiangnankid/article/details/22690165

1、

①画茎状图

M=4;                         %原离散信号有4点
n=[0:1:M-1];                 %原信号是1行4列的矩阵
xn=[1 1 1 1];                %构建原始信号 
subplot(3,1,1);
stem(n,xn);                  %画图
title('原始信号');

 

画柱状图

color_set=[0.8660 0.9236 0.8957 0.9116];
%bar的颜色索引
color_background=['c' 'm' 'y' 'k' 'r' 'g' 'b'];
%对figure的标题、横坐标、纵坐标的标注进行设置
hold on
%title('Tiltle Name');
ylabel('sVRI');
ax = gca;
ax.XTick = [1 2 3 4];
ax.XTickLabels = {'Rest','Hard Task','Relax','Esay Task'};
%对不同的数据所对应的bar进行不同颜色条的设计
color_bar=bar(1,0.8660);
set(color_bar,'FaceColor',color_background(1));%选择‘c’这个颜色
color_bar=bar(2,0.9236);
set(color_bar,'FaceColor',color_background(2));%选择‘m’这个颜色
color_bar=bar(3,0.8957);
set(color_bar,'FaceColor',color_background(3));%选择‘y’这个颜色
color_bar=bar(4,0.9116);
set(color_bar,'FaceColor',color_background(4));%选择‘y’这个颜色
axis([-inf,inf,0.7,1.0]) 
%画柱状图
data = [0.8660 ,0.9236 ,0.8957,0.9116];
b = bar(data);
color_background=['c' 'm' 'y' 'k' 'r' 'g' 'b'];
ch = get(b,'children');
set(gca,'XTickLabel',{'Rest','Hard Task','Relax','Esay Task'})
set(ch,'FaceVertexCData',[0 0 1;0 1 1;1 1 1;1 0 1;])
ylabel('sVRI');
axis([-inf,inf,0.7,1.0]) 

在柱状图上加高度

color_set11=[0.8660];
color_set1=num2cell(color_set11);

color_bar=bar(1,0.8660);
set(color_bar,'FaceColor',color_background(1));%选择‘c’这个颜色
text(1-0.1,0.8660+0.018,color_set1);

多条曲线加上标注

figure
plot(f02)

hold on
plot(s01)

hold on
plot(t12)
legend('0-2','0-1','1-2')

一个legend即可

 

②曲线加粗

plot(x,y,'Linewidth',3),可以将x,y直接换成矩阵数据

③曲线颜色plot(横轴,纵轴,‘形状颜色’),形状和颜色连在一起

如‘*r’表示离散的*点,所有点之间没有连接起来

‘-*r’表示将所有*用直线连接起来

*/○的大小:plot(breathfreq,'-ko','markersize',4)

b 蓝 . 
c 青 。 圈
g 绿 × ×标记
k 黑 - 实线
m 紫红 * 星号
r 红 : 点线
w 白 -. 点划线
y 黄 -- 虚线

 

④figure也可以传入参数,figure('visible','off'),只是不画出来,但是实际画图的时候会占用figure

 

2、横轴点数转化为时间轴

①将矩阵中的横轴(数字轴)转化为对应的时间轴

    len=length(se);
    t=0.005*(1:len);%很轴分成多分
    plot(t,second_ant_csi.')%指定横轴为时间,数据中的横轴含义直接被覆盖了

注:指定横轴,纵坐标可以直接传入数据,这里的一行数据要直接转化成一列数据

②只指定某一个坐标轴的范围ylim([0 0.6])/xlim([0 0.6])

使用 axis([XMIN XMAX YMIN YMAX]) ,对于不需要设置范围的轴,使用参数-inf,inf,即正负无穷之间

>> x = 1:10;
>> y = x.^2;
>> subplot(3,1,1)
>> plot(x,y,'r')
>> subplot(3,1,2)
>> plot(x,y,'g')
>> xlim([0,15])
>> subplot(3,1,3)
>> plot(x,y,'b')
>> axis([-1,12,-inf,inf])   

必须在plot后面

 

3、多图和曲线

①怎样实现一个界面画多个图

    subplot(2,2,1);% 新建窗口 
    plot(I)             % 画出原始的波形

    e=I;
    subplot(2,2,3);                                      % 新建窗口
    s1=wden(e,'minimaxi','s','one',5,'db3');   % 选用 db3 小波对信号进行5层分解,并对细节系数选用 minimaxi 阈值模式和尺度噪声 
    plot(s1); 

直接使用subplot()函数,前两个参数确定将界面分成多少块,最后一个参数决定图画在那一块

②在一个坐标系中画多个曲线hold on...hold off

    subplot(2,2,1)
    plot(csi15_1)
    hold on 
    plot(csi15_2)
    plot(csi15_3)
    hold off 

注:

 hold on 和hold off,是相对使用的.通常是一个图上画两个曲线进行比较。

% 前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到

% 后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了

③给最大值点位置加上坐标线

    plot(f_PSD,plot_Pxx1);
    j = f_PSD>1 & f_PSD<2 ;         %指定频率范围求最大值和最小值
    max_psd=max(plot_Pxx1(j));                    %求出指定横轴范围内的纵轴的最大值 
    ax=axis;%获得当前坐标的范围
    hold on;%保持图像
    plot([f_PSD(find(plot_Pxx1==max_psd)),f_PSD(find(plot_Pxx1==max_psd))],[ax(3),ax(4)],'r:');%这里只是绘制了竖线

注:

1、先画出图像后再画纵横线

2、plot([ax(1),ax(2)],[maxy,maxy],'r:',[maxx,maxx],[ax(3),ax(4)],'r:');%绘制纵横线 

 

5、给每一条曲线加上注释

 

4、画等间距横轴方法

zeros(1,length(all));zeros函数直接取了1行length(all)列的0矩阵

for i=1:length(all)
       timeline(i)=all{i}.timestamp_low-all{1}.timestamp_low;

然后通过for循环依次给每个位置赋值

 

5、画三维图(30×1000的矩阵和一个1×1000的矩阵)

怎么将x作为子载波数(从0-30),y作为时间轴,z作为幅度值画出?

分为2种:画函数(连续)的三维图和画矩阵(离散)的三维图

①画三维图用surf函数,去掉曲面图上的网格用shading interp;

    surf(x,y,z)
    shading interp;

一般采用surf(X,Y,Z)命令。

注意X于Y是同维数还是不同维数,均需要采用meshgrid()函数将其变为同维数的矩阵。

 

画图坐标轴

1、上标和下标

{ \itN_{RF}}

\it:表示斜体

_:表示下标,{RF}上标的内容用{}括起来

^:表示上标

箭头所指空白处双击才会出现

 

2、关于复制波形到Word中

点击复制图形即可

 

取点:

1、取指定范围横坐标范围内的纵轴最大值

获取到横轴矩阵和纵轴矩阵 plot(f_PSD,plot_Pxx1);,均是129*1的矩阵

横轴指定范围: j = f_PSD>1 & f_PSD<2 ;        这里返回的同样是129*1的矩阵,范围内的对应的值为1,其他为0,返回矩阵中只包含0或1

求纵轴最大值: max_psd=max(plot_Pxx1(j));     将0-1矩阵传入纵轴,即可取出指定横轴范围内对应的纵轴的值

 

 

矩阵操作

1、对矩阵各列元素求和,sum(矩阵)

矩阵各行元素求和,sum(矩阵,2)

2、生成全1矩阵

sub_1=ones(1,1000);生成1×1000的全1矩阵

扩展:生成全2矩阵sub_1=ones(1,1000)*i;

 

常用函数:

1、 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称

2、squeeze函数

就是将数据整合到二维矩阵中

3、注释

注释:Ctrl+R

取消注释:Ctrl+T5、fullfile函数

作用是利用文件各部分信息创建并合成完整文件名。

输入:f = fullfile('C:','Applications','matlab','fun.m')

得到:f =C:\Applications\matlab\fun.m

6、出现冒号,就表示此维度的全部遍历

csi(1,:,:)

7、转置:直接csi_amp=csi_amp.';

8、将每一个波形用变量表示,直接plot变量的波形

y(:,i)

9、matlab中的变量一定是不能重名的,重名会出现超过索引或者维度的错误

之前就是此处同时为y,导致错误

10、向一个矩阵中加入一行

result=[result;rqa_stat];rqa_stat为要加入的行或者列

11、在之前画图基础上修改

title之前进行处理

13、找每行/每列的最大值

[min_a,index]=min(result(:,2));先把行或者列取出,在min/max

14、if...else...格式

15、matlab中.m文件的名称不能含有中中文

不能有空格,空格直接用下划线代替

16、界面内容显示

当语句后面不加分号时,会在上图将变量值全部打印出来,加上分号不打印变量值

命令行窗口能直接对变量进行操作,如统计长度和plot

17、幂次表示方法

1e-6表示10^-6,前面直接加上*号

MATLAB在日常计算的应用》由大量的MATLAB计算实例组成。通俗易懂,图文并茂,资料丰富,实用性强。提供大量MATLAB计算实例以及全部实例的M文件,方便读者使用。既适合初学者,也适合有一定MATLAB基础的爱好者或专业技术人员。 目录 第1章MATLAB基础知识 1.1MATLAB的发展历程 1.2MATLAB的特点 1.3MATLAB的桌面操作环境 1.4MATLAB的常量和变量 1.5MATLAB命令窗口应用例子 1.6小结 第2章多项式处理 2.1多项式的创建 2.2多项式的因式分解 2.3乘积展开成多项式 2.4合并同类项——对多项式合并同类项 2.5多项式加法(或减法) 2.6多项式乘法 2.7多项式除法 2.8求多项式的根 2.9多项式的替换 2.10符号简化 2.11分式通分 2.12求符号函数的反函数 2.13求符号表达式的复合运算 2.14将符号表达式转化为数值表达式 2.15将数值表达式转化为符号表达式 2.16小结 第3章MATLAB绘图 3.1二维绘图 3.1.1画函数图 3.1.2画饼状图 3.1.3画条形图 3.1.4手工绘图 3.1.5在极坐标下绘图 3.2三维绘图 3.2.1画球形图 3.2.2画圆柱体图 3.2.3画三维曲线图 3.2.4画直方图 3.2.5画饼状图 3.2.6画低通滤波器的三维网格图 3.2.7画三维平面图 3.2.8画瀑布图 3.2.9画伞状图 3.2.10画花蕊图 3.2.11画正立方体 3.3小结 第4章复数运算 4.1复数简介 4.1.1复数 4.1.2复数的四种表示形式 4.1.3复数的四则运算 4.1.4复数的其他运算 4.2复数运算程序1 4.2.1复数代数形式和极坐标形式间的相互转换程序 4.2.2求代数形式复数的倒数程序 4.2.3求任一复数平方根的程序 4.2.4求两个代数形式复数之积的程序 4.2.5求两个代数形式复数之商的程序 4.3复数运算程序2 4.3.1求复数的乘幂程序 4.3.2求复数的N次方根程序 4.3.3求复数的指数程序 4.3.4求复数的自然对数程序 4.3.5求复数的常用对数程序 4.3.6求复数的正弦程序 4.3.7求复数的余弦程序 4.3.8求复数的正切程序 4.4小结 第5章矩阵计算 5.1矩阵简介 5.1.1行列式 5.1.2矩阵的加法、乘法和矩阵的转置 5.1.3矩阵的除法——矩阵求逆 5.1.4矩阵的特征值和特征向量 5.2求行列式值 5.2.1求3阶行列式值 5.2.2求4阶行列式值 5.2.3求5阶行列式值 5.2.4求6阶行列式值 5.3矩阵转置 5.3.1将3阶矩阵转置 5.3.2将4阶矩阵转置 5.3.3将5阶矩阵转置 5.3.4将6阶矩阵转置 5.4矩阵相乘 5.4.1两个3阶实矩阵相乘 5.4.2两个4阶实矩阵相乘 5.4.3两个5阶实矩阵相乘 5.4.4一个4×5矩阵与一个5×3矩阵相乘 5.5矩阵求逆 5.5.1求2阶矩阵的逆阵 5.5.2求3阶矩阵的逆阵 5.5.3求4阶矩阵的逆阵 5.5.4求5阶矩阵的逆阵 5.5.5求6阶矩阵的逆阵 5.6求矩阵的特征值和特征向量 5.6.1求2阶矩阵的特征值和特征向量 5.6.2求3阶矩阵的特征值和特征向量 5.6.3求4阶矩阵的特征值和特征向量 5.7小结 第6章解多元一次线性方程组 6.1多元一次方程组简介 6.2解实系数多元一次方程组 6.2.1解实系数二元一次方程组 6.2.2解实系数三元一次方程组 6.2.3解实系数四元一次方程组 6.2.4解实系数五元一次方程组 6.2.5解实系数六元一次方程组 6.3解复系数多元一次方程组 6.3.1解复系数二元一次方程组 6.3.2解复系数三元一次方程组 6.3.3解复系数四元一次方程组 6.3.4解复系数五元一次方程组 6.3.5解复系数六元一次方程组 6.4小结 第7章解一元N次方程(上) 7.1实系数一元一次方程 7.2实系数一元二次方程 7.2.1实系数一元二次方程的求根公式介绍 7.2.2程序实例 7.3实系数一元三次方程 7.3.1卡尔丹公式 7.3.2盛金公式 7.3.3解题实例——解缺少二次项的实系数一元三次方程 7.3.4解题实例——解一般形式的实系数一元三次方程 7.4实系数一元四次方程 7.4.1一元四次方程解法介绍 7.4.2MATLAB解一元四次方程实例 7.5复系数一元一次方程 7.6复系数一元二次方程 7.6.1复系数一元二次方程解法介绍 7.6.2说明 7.6.3实例 7.7复系数一元三次方程 7.8复系数一元四次方程 7.9小结 第8章解一元N次方程(下) 8.1实系数一元代数方程 8.1.1求解实系数一元五次方程的根 8.1.2求解实系数一元六次方程的根 8.1.3求解实系数一元七次方程的根 8.1.4求解实系数一元八次方程的根 8.2复系数一元代数方程 8.2.1求解复系数一元五次方程的根 8.2.2求解复系数一元六次方程的根 8.2.3求解复系数一元七次方程的根 8.2.4求解复系数一元八次方程的根 8.3小结 第9章超越方程及非线性方程 9.1超越方程说明 9.2解超越方程 9.2.1解指数方程 9.2.2解对数方程 9.2.3解三角方程 9.2.4解无理方程 9.2.5解反三角函数方程 9.2.6解一般超越方程 9.3解非线性方程 9.3.1解一元非线性方程 9.3.2解二元非线性方程组 9.3.3解三元非线性方程组 9.4小结 第10章用图像法解实系数一元N次方10.1实系数一元一次方10.2实系数一元二次方10.3实系数一元三次方10.4实系数一元四次方10.5实系数一元五次方10.6实系数一元六次方10.7实系数一元七次方10.8实系数一元八次方10.9小结 第11章用图像法解实系数N元一次方程组 11.1实系数二元一次方程组 11.2实系数三元一次方程组 11.3实系数N元一次方程组 11.4小结 参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值