1、 生成行向量
a = [1 2 3] 或者 a = [1,3,3]
2、生成列向量
a = [1;2;3]
3、与python中numpy不同,matlab的选择数组中的元素是()而不是[]
4、切片:
用,分隔行或者列 a(:,1)表示所有行第一列
4、转置和共轭
转置:a.'
共轭:a'
5、找到和列表中元素最近的元素以及相对应的索引,可以自动广播
function min_index = findmin(x)
mQAM_list = [1 + 0j, 0 + 1j, -1 + 0j, 0 - 1j]
[m,index] = min(x-mQAM_list)
min_index = index
end
7、对数组中所有元素,使用一个函数进行广播:
qam_demod = arrayfun(@findmin,qam_fft)
前面是函数名,后面是数组的名字
8、for
a = [1 2 3]
for i = a
end
9、将多维数组转化为一维数组
a = [1 2 3; 4 5 6]
b= reshape(a,[],1),
如果想横向展开,则可以将a转置
10、多返回值函数:
function [sinx,cosx]=myfun_1(x)
sinx=sin(x);
cosx=cos(x);
返回Matlab输入:
x=0:1:2*pi;
[sx,cs]=myfun_1(x)
11、画光滑曲线:
values = spcrv([[a(1) a a(end)];[b(1) b b(end)]],3);
plot(values(1,:),values(2,:), 'g');
a是横坐标,b是纵坐标
12、一行写不下换行
空格加上 ...
13、求和
sum(M):以矩阵M的每一列为对象,对每一列的数据分别求和。
sum(M,2):以矩阵的每一行为对象,对每一行的数据分别求和。
sum(M(:)):将矩阵中的所有元素相加求和。
14、生成一个正弦信号:
f = 100
t = [0:1/f:1-1/f]
s = sin(2*pi*t)
15、矩阵相乘
矩阵对应每一列和一个列矩阵相乘
>> test = [1 2 3; 4 5 6]
test =
1 2 3
4 5 6
>> test_mult = [1;2]
test_mult =
1
2
>> test.*test_mult
ans =
1 2 3
8 10 12
16、互相关
r = xcorr(x,y)
返回两个离散时间序列的互相关。互相关测量向量 x
和移位(滞后)副本向量 y
的之间的相似性,形式为滞后的函数。如果 x
和 y
的长度不同,函数会在较短向量的末尾添加零,使其长度与另一个向量相同。
17、插值滤波
>> x = 0:1/10:1-1/10
>> y = sin(2*pi*x)
>> y_m = interp1(x,y,[0:1/20:1-1/10],"spline")
18、如果不要matlab运行代码的时候打印输出,则在该行的后面加上 ;
这样可以提高运行速度。
19、画输入数据频谱
pspectrum(y_sin,Fs)
Fs是输入数据的采样频率。
20、带通滤波器
bandpass,也有专门的函数
21、在linux平台下使用window版本的快捷键
centos系统下的matlab有时不能使用ctrl+c ctrl+v ctrl+z 复制粘贴撤销等快捷键,这使编写程序时过多的依赖鼠标右键,大大降低了编写程序的效率。
小编发现了有关ubuntu下matlab快捷键设置教程也适用于centos系统,主要步骤如下;
在matlab主页中找到“预设”,然后找到“键盘”下的“快捷方式”一栏,最后将右侧的“活动设置”设置为windows默认集,点击“确定”即可。(centos系统的matlab默认的活动设置为Emacs默认集)
22、在matlab的plot函数画图后,可以在insert标签下,对所画的图的横纵坐标进行修改
23、更改当前工作路径
在matlab中输入
cd('/path')
显示当前工作路径 cd