MATLAB实用操作----数值与符号计算

1、数据显示格式切换

%【分式显示】
format rat 
%【小数显示】
format bank
%【正负号显示】
format +
%【手写格式分式】
pretty(varname)

2、符号矩阵操作(行、列提取、符号赋值)

clear;clc;
%% 符号运算
syms a11 a12 a13 a21 a22 a23 a31 a32 a33 real;%使用 real 声明符号是实数
syms b11 b12 b13 b21 b22 b23 b31 b32 b33 real;%使用 real 声明符号是实数
A = [a11 a12 a13;a21 a22 a23;a31 a32 a33];
B = [b11 b12 b13;b21 b22 b23;b31 b32 b33];
%% 符号赋值
AA = subs(A,[a11 a12 a13 a21 a22 a23 a31 a32 a33],[1 2 3 4 5 6 7 8 9]);
disp('赋值测试:');
disp(AA);

%% 列提取
FirstCol  = A * [1 0 0]';%提取第一列
disp('提取第一列测试:');
disp(FirstCol);

%% 行提取
FirstRow  =  [1 0 0] * A;%提取第一行
disp('提取第一行测试:');
disp(FirstRow);

%% 对角线提取
Diag = diag(A);
disp('对角线元素提取测试:');
disp(Diag);

%% 叉乘
V1 = A(1,:);
V2 = B(1,:);
V3 = cross(V1,V2);
disp('叉乘运算测试:');
disp(V3);

3、FFT分析

MATLAB的FFT函数数学公式为:
X ( k ) = ∑ j = 1 N x ( j ) ω N ( j − 1 ) ( k − 1 ) x ( j ) = ( 1 / N ) ∑ k = 1 N X ( k ) ω N − ( j − 1 ) ( k − 1 ) \begin{array}{l} X(k)=\sum_{j=1}^{N} x(j) \omega_{N}^{(j-1)(k-1)} \\ x(j)=(1 / N) \sum_{k=1}^{N} X(k) \omega_{N}^{-(j-1)(k-1)} \end{array} X(k)=j=1Nx(j)ωN(j1)(k1)x(j)=(1/N)k=1NX(k)ωN(j1)(k1)
其中:
ω N = e ( − 2 π i ) / N \omega_{N}=e^{(-2 \pi i) / N} ωN=e(2πi)/N

clear all;close all;clc;

fs = 10000;%采样率
dt = 1/fs;
t = 10;%采样时间
vt = 0 : dt : t;
w1 = 1000;
w2 = 3000;

Genuinesignal = sin(2*pi*w1*vt) + sin(2*pi*w2*vt);Genuinesignal;
signal = Genuinesignal + randn(size(Genuinesignal));%加噪声
figure;
plot(signal);

%根据信号长度做对应点数的FFT
L = length(signal);
NFFT = 2^nextpow2(L);%2L > 2^N > L 

%FFT变化
Y = fft(signal,NFFT)/L;%根据公式需要除序列的长度

%采样定理:只能分析 fs/2 以下频率(对应 NFFT 的一半)
%频率范围 0~fs/2
%样点范围 1~NFFT/2+1
Fre = fs/2 * linspace(0,1,NFFT/2+1);
Amp = 2 * abs(Y(1:NFFT/2+1));%傅里叶变换有个 1/2 因此需要乘 2 
figure;
plot(Fre,Amp);

你可能感兴趣的:(MATLAB操作,matlab)