之前实现优化算法用的java、python、c++,matlab使用较少,接下来会用matlab来实现。此处记录了一些matlab中常用的函数和需要注意的地方。
Matlab版本2015b
1.向量
Matlab的名称就是矩阵实验室,其中大多数运算都是矩阵运算。不过,优化算法中,向量用的更多。矩阵中m*n的矩阵表示m行n列的矩阵,向量可以认为是1行n列的矩阵。
下面介绍如何初始化向量。
| 函数 | 定义 |
|---|---|
| zeros(m,n) | 生成一个m行n列,所有元素都为0的矩阵。 |
| ones(m,n) | 生成一个m行n列,所有元素都为1的矩阵。 |
(1).生成一个5维向量,每一维都是0
A = zeros(1,5);
(2).生存一个5维向量,每一维都是1
A = ones(1,5);
2.随机数
| 函数 | 定义 |
|---|---|
| rand | 返回一个在区间 (0,1) 内均匀分布的随机数。 |
| rand(n) | 返回一个 n×n 的随机数矩阵,其中每个值为区间 (0,1) 内均匀分布的随机数。 |
| rand(m,n) | 返回一个 m×n 的随机数矩阵,其中每个值为区间 (0,1) 内均匀分布的随机数。 |
| unidrnd(a) | 返回一个在区间 [1,a] 内均匀分布的随机整数。 |
| unidrnd(a,n) | 返回一个 n×n 的随机数矩阵,其中每个值为区间 [1,a] 内均匀分布的随机整数。 |
| unidrnd(a,m,n) | 返回一个 m×n 的随机数矩阵,其中每个值为区间 [1,a] 内均匀分布的随机整数。 |
| unifrnd(a,b) | 返回一个在区间 (a,b) 内均匀分布的随机浮点数。 |
| unifrnd(a,b,n) | 返回一个 n×n 的随机数矩阵,其中每个值为区间 (a,b) 内均匀分布的随机浮点数。 |
| unifrnd(a,b,m,n) | 返回一个 m×n 的随机数矩阵,其中每个值为区间 (a,b) 内均匀分布的随机浮点数。 |
| randperm(s) | 返回一个 1-s 的乱序整数序列。 |
| randperm(s,n) | 返回一个 1-s 的乱序整数序列中的n个数,有重复值。 |
| normrnd(mu,sigma) | 从均值参数为 mu 和标准差参数为 sigma 的正态分布中生成随机数。 |
| normrnd(mu,sigma,n) | 返回一个 n×n 的随机数矩阵, 其中每个值从均值参数为 mu 和标准差参数为 sigma 的正态分布中生成随机数。 |
| normrnd(mu,sigma,m ,n) | 返回一个 m×n 的随机数矩阵, 其中每个值从均值参数为 mu 和标准差参数为 sigma 的正态分布中生成随机数。 |
(1)生成一个(0,10)内的均匀随机数
A = 10*rand;
(2)生成一个4维向量,每一维为(2,5)内的均匀随机数
A = rand(1,4)*(5-2)+2;
B = unifrnd(2,5,1,4);
(3)从1-10中随机选择一个整数
A = unidrnd(10);
取A(1)
B = randperm(10,1);
(4) 从1-10中随机选择2个不重复的整数
A = randperm(s);
取A(1),A(2)
3.运算符号
| 符号 | 含义 |
|---|---|
| +- | 向量的加减法,需要向量维度相同。 |
| * | 向量乘法,得到一个值或一个向量。 |
| .* | 向量点乘,得到一个向量。 |
| ^ | 数值的幂。 |
| .^ | 向量中每个数值的幂。 |
| : | 表示该维度的间隔值或所有值。 |
| ‘ | 向量转置 |
| >< | 大于,小于,向量之间比较需要维度一致,同时返回向量. |
A=[1,2,3];
B=[4,5,6];
A+B=[5,7,9]
A*2=[2,4,6]
A*B’=1*4+2*5+3*6=32
A.*B=[4,10,18]
A.^2=[1,4,9]
C=1:10=[1,2,3,4,5,6,7,8,9,10]
D=1:2:10=[1,3,5,7,9]
A>[2,2,2]=[0,0,1]
B<A=[0,0,0]
4.循环
matlab中的循环从1开始。
matlab中的循环从1开始。
matlab中的循环从1开始。
% 从1取到10
for i = 1:10
end
i=1;
while i<=10
i=i+1;
end
5.类
定义一个类A,文件A.m
classdef A
%属性,公开的
properties
end
%属性,私有的
properties (Access = private)
end
%属性,受保护的,继承用
properties (Access = protected)
a;
end
%方法,公开的
methods
end
%方法,私有的
methods(Access = private)
end
%方法,受保护的,继承用
methods(Access = protected)
% 构造函数
function self = A (a)
self.a =a;
end
%方法,打印a的值
function print(self)
disp(self.a)
end
end
end
定义一个类B,继承A,覆盖print方法。文件B.m
classdef B < A
%属性,公开的
properties
end
%属性,私有的
properties (Access = private)
end
%属性,受保护的,继承用
properties (Access = protected)
b;
end
%方法,公开的
methods
% 构造函数
function self = B (a)
%调用父类构造函数
self@A(a)
self.b =a*a;
end
end
%方法,私有的
methods(Access = private)
end
%方法,受保护的,继承用
methods(Access = protected)
%方法,打印a的值
function print(self)
disp(self.b)
end
end
end
打印类A中的a,打印类B中的b。文件Test.m
a=2;
class_a = A(a);
class_a.print();
class_b = B(a);
class_b.print();
AI大模型学习福利
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
四、AI大模型商业化落地方案

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量
1468

被折叠的 条评论
为什么被折叠?



