matlab常用语法

(一) 软件使用

1、恢复默认窗口布局

主页—布局—默认

2、快捷键

(1)将光标快速移动到代码最上端

Ctrl + Home

(2)将光标快速移动到代码最底部

Ctrl + End

(二)常用代码

1、固定随机值 rng(2)

2、清除工作区缓存数据

clear all
clc

3、清除工作区缓存数据

    theta = -pi + (pi+pi)*rand(1,M);    % 产生维度为1*M-π,π的行向量
    Phi = diag(exp(1*1i*theta));    % 初始化随机ris矩阵

4、保存和调用变量

(1)保存变量

Q_sample是定义的矩阵,Q是给它取的名字

clear all
clc
N1 = 128;  %基站天线数量
M1 =  128;  %RIS元件数量
save M M1
save N N1
(2)调用变量

变量名字和保存的时候一样

load M M1
M = M1;
load N N1
N = N1;

4、画图

clear all
clc
f2=figure(2);  %给每一幅图命名,不命名的话如果运行多幅图就共用一个窗口,会覆盖,命名之后产生新的窗口
plot(t,t-1,'-o','linewidth',1)%1
hold on;
plot(t,SNR11_db,'g','linewidth',1)%2
hold on;
plot(t,SNR_ran11_db,'--b','linewidth',1)%3
hold on;
plot(t,SNR_with1,'-.^r','linewidth',1)%4
hold on;
plot(t,SNR_with2,'-.vc','linewidth',1)%5
hold on;
plot(t,t,'s:k')%6
grid on;
xlabel('Number of transmitting antennas','FontSize',14);   %横坐轴标签,可以调整大小
ylabel('Receive Sum_Rate (dB)','FontSize',14);  %纵坐轴标签
legend('L-RES','ITER-DIS','LS');    %根据plot的先后顺序,命名每一条线
hold off;
(1) plot 的颜色以及线型 (顺序是线形,颜色,标记类型)

在这里插入图片描述

(2) plot 的标记类型定义符

在这里插入图片描述

(三)基本运算符号和函数

1、基本数学符号

(1) 对数 log2(16); (2为底数也可以换成10,或者需要的数字)
(2) 根号 sqrt(9);
(3) 除法 1/2=0.5 1\2=2
(4) 取余 mod(10,3) (10除3的余数)
(5) 平方 a^2 (a)的平方

2、复数运算和取值

(1) 取复数实部和虚部 S = real(z); C = imag(z);
(2) 求复数的角度
      ` b_1 = angle(b);`     (b为弧度)
      `b_2 = angle(b)*180/pi; `     (b为角度)    

3、一些特殊值

(1) π pi
(2) 取光速
c1 = physconst('lightspeed');

4、常用函数

(1) e 指数函数 exp() (括号存放e的指数)
 ``exp(1i*2*pi)``   (不要用exp(1*i*2*pi),如果一旦加乘号,那么程序里面一旦有已经赋值的i,计算的时候会直接把i的值代入。)

5、基本关系符

(1) 不等于 ~=

(四)矩阵及其运算

1、特殊矩阵

(1) 零矩阵 A=zeros(m,n);
(2) 全1矩阵 A=ones(m,n);
(3) 产生m*n矩阵,这个矩阵的元素都是处于imin和imax之间的整数
p = randi([imin,imax],[m n]);
(4) 返回一个主对角线元素为 1 且其他位置元素为 0 的 n×m 矩阵,即单位阵 I = eye(n,m)
(5) 对角矩阵,关于diag的使用
d = [1,0,0;0,5,0;0,0,9];
d1 = diag(d);        %%d1 =[1;5;9]   d1是列向量
d2 = diag(d1);       %%d2 = [1,0,0;0,5,0;0,0,9]

2、矩阵基本数学运算

(1) 转置 A = B.’
(2) 共轭转置 A = B’
(3) 按元素相除 ./
(4) 按元素相乘: .*
(5) 共轭 conj(A)
(6) 数组求和
   `  S = sum(A,"all")  `    数组所有元素求和
   `  sum(A,2)  `     返回包含每一行总和的列向量。

2、矩阵基本操作,行列式

(1) 从矩阵取某几行某几列元素
 `a(1:2,3);`  获取矩阵第三列第一行和第二行的元素
 `a([1 3],3) ;`   获取矩阵第三列第一行和第三行的元素
 `a(2:end,3) ;`   获取矩阵第三列第一行和第三行的元素
 `a= A(:,[1 3]) ;`  取矩阵的第一列和第三列
(2) 从0到10,每隔2数取一个值
   ` A = [0:2:10];` 
(3) 求一维矩阵长度
A = [1, 2, 3, 4, 5];
len = length(A);  % 返回数组A的长度,即5
(4) 对矩阵元素进行升序或者降序排序
  ` [c index] = sort(A,'descend'); `  降序       `[c index] = sort(A,'ascend');`   升序
(5) 返回矩阵的元素最大值 M = max(A)
     如果 A 是向量,则 max(A) 返回 A 的最大值。
     如果 A 为矩阵,则 max(A) 是包含每一列的最大值的行向量。  
(6) 矩阵元素的排列组合

从1-5里面选3个数的所有可能组合,每个组合数字不重复 nchoosek([1:5],3);
向量内所有元素可能得排列方式 a1 = perms(a);

3、行列式运算

(1) 生成特征值和特征向量 [V D] = eig(A);
   D是由特征值组成的对角阵,V的每一列是A的一个特征向量
(2) 对矩阵A求逆 Y = inv(A);
(3) 矩阵的迹 trace(A) 主对角线元素之和
(4) 矩阵的逆矩阵 inv(A) A必须是方阵
4、关于矩阵范数
(1) 矩阵列范数 norm(a,1) % (每列的所有元素绝对值之和的最大值)
(2) 矩阵行范数 norm(a,inf); % (每行的所有元素绝对值之和的最大值)
(3) 矩阵的二范数也叫矩阵的欧几里得范数(A的转置乘以A矩阵的结果的特征根最大值的开根号)

b = norm(a); b1 = norm(a,2);

(4) 矩阵的Frobenius范数 norm(a,'fro'); % (矩阵元素绝对值平方的和的平方根)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值