数学建模需要的Matlab知识速成,两小时Matlab速成,Matlab小白教程

建议由 C 语言和相关编程语言基础,了解线性代数和矩阵的相关知识

该网站可以对具体内容进行进一步查看和了解

我们先来看看 Matlab 的界面构成:

在这里插入图片描述

在界面的最左端是文件目录,在中间是命令行窗口,右边是工作区

这份博客主要是为了数学建模使用,当然如果需要考前速成也可以参考

1.生成矩阵

首先来看生成矩阵的方式:

1.直接法

代码如下:

matrix = [1, 2, 3; 4, 5, 6; 7, 8, 9]

在命令行窗口输入上面的代码可以得到生成的矩阵:
在这里插入图片描述
2.冒号生成一维矩阵

使用冒号法生成一维矩阵的方法类似于循环:代码格式如下:

矩阵 = 开始数字 :步长 :截止数字

如果步长为 1 的话,可以省略步长

我们使用上面的方式来生成一个步长为 1 的矩阵:

matrix = 1 : 1 : 10
matrix = 1 : 10

同样我们接下来生成一个步长为 2 的矩阵:

matrix = 1 : 2 : 10

生成结果如图所示:
在这里插入图片描述

3.函数生成

首先可以使用 linspace 函数,这个函数可以在数字的起始位置到终止位置间等间距的生成所指定的数字个数,代码格式如下:

矩阵 = linspace(起始位置,终止位置,生成个数)

我们接下来用 linspace 函数生成一个一维矩阵,代码如下:

matrix = linspace(1, 5, 5)

生成结果如下图所示:
在这里插入图片描述
如果生成的矩阵中的数字包含小数,则所有数字默认保留四位小数,示例如下:

matrix = linspace(0, 10, 5)

生成的矩阵如图所示:

在这里插入图片描述

之后我们接着看使用 eye 函数生成 n 阶单位矩阵:

代码格式如下:

矩阵 = eye(n) n 为需要生成的单位矩阵的阶数

示例代码如下:

matrix = eye(3)

创建出的矩阵如下所示:
在这里插入图片描述
接下来使用 zeros 函数生成一个全零矩阵,代码格式如下所示:

矩阵 = zeros(行数,列数)

我们接下来使用 zeros 函数生成一个全零矩阵,代码入下:

matrix = zeros(2, 2)

使用这个函数生成的矩阵如图所示:
在这里插入图片描述
接着我们使用 ones 函数生成全一矩阵,代码个数如图所示:

矩阵 = ones(行数,列数)

接下来使用这个函数生成一个全一矩阵,代码如下:

matrix = ones(2, 2)

生成的矩阵如图所示:
在这里插入图片描述
接下来使用 rand 函数生成一个数字在 0 和 1 之间的行列相等的矩阵,代码格式如下所示:

矩阵 = rand(n) 生成一个 n 行 n 列的矩阵

使用这个函数生成一个矩阵代码如下所示:

matrix = rand(3)

生成的矩阵如下图所示:
在这里插入图片描述
我们还可以使用函数 randn 生成一个以 0 为均值的正态分布或高斯分布矩阵,代码格式如下:

矩阵 = randn(n) 生成一个 n 行 n 列的矩阵

使用这个函数生成矩阵代码如下:

matrix = randn(3)

生成的矩阵如下所示:
在这里插入图片描述

2.矩阵运算

使用 diag 函数可以生成对角阵,具体的格式如下:

矩阵 = diag(现有的矩阵,主对角线上方第k条斜线) 用行向量生成对角阵

接下来我们尝试生成一个这样的对角矩阵:

matrix_1 = diag(matrix, 1)
matrix_1 = diag(matrix, 0)
matrix_1 = diag(matrix, -1)

通过上面的代码我们生成了如下的矩阵:
在这里插入图片描述
接下来我们可以通过函数 tril 生成下三角矩阵,或者使用 triu 函数生成上三角矩阵,具体使用代码的格式如下:

矩阵 = tril(现有的矩阵,主对角线上第k条斜线) 让这条斜线上方的元素清零
矩阵 = triu(现有的矩阵,主对角线下第k条斜线) 让这条斜线下方的元素清零

接下来尝试使用这两个函数创建几个矩阵:

matrix_1 = tril(matrix, 1)
matrix_1 = tril(matrix, 0)
matrix_1 = tril(matrix, -1)
matrix_1 = triu(matrix, 1)
matrix_1 = triu(matrix, 0)
matrix_1 = triu(matrix, -1)

在这里插入图片描述
在这里插入图片描述
矩阵的加减乘乘方运算

矩阵的加减乘乘方运算和矩阵的运算方式吻合,我们看看矩阵的加减乘乘方运算:

matrix + matrix
matrix - matrix
matrix * matrix
matrix ^ 2

生成的矩阵如图所示:
在这里插入图片描述
矩阵的点乘将进行矩阵对应位置的相乘,我们接下来使用矩阵的点乘生成一个矩阵,代码如下:

matrix .* matrix

得到的结果如下图所示:
在这里插入图片描述
逆矩阵

在 matlab 中可以使用 pinv 函数生成矩阵的逆矩阵,代码如下:

pinv(matrix)

生成的逆矩阵如下图所示:
在这里插入图片描述
特征值,特征向量

同样我们可以通过使用 eig 函数生成一个矩阵的特征向量和特征值对角阵,代码格式如下:

[特征向量,特征对角阵] = eig(矩阵)

接下来我们使用 eig 函数生成一个矩阵的特征向量和特征对角阵,具体代码如下:

[v, D] = eig(matrxi)

生成的特征向量和特征对角阵如下图所示:
在这里插入图片描述
行列式,秩

分别可以使用函数 detrankcompan 可以生成矩阵的行列式,矩阵的秩,示例代码如下:

det(matrix)
rank(matrix)

结果如下图所示:
在这里插入图片描述

3.矩阵的修改

部分替换

在矩阵的替换之前可以对矩阵进行备份,防止之后对矩阵的修改出现错误,下面列举矩阵的修改的几种操作的代码格式:

matrix(x, y) = number 将第x行第y列的元素进行替换,替换为number
matrix(x, :) = [number_1, number_2, number_n] 将第x行的元素全部替换,替换为方括号内的数字
matrix(x, :) = [] 将第x行的元素全部删除
matrix(:, y) = [number_1, number_2, number_n] 将第y行的元素全部替换,替换为方括号内的数字
matrix(:, y) = [] 将第y行的元素全部删除

接下来对矩阵进行部分替换的代码如下所示:

matrix_copy = matrix
matrix_copy(2, 2) = 0
matrix_copy = matrix
matrix_copy(2, :) = [1, 1, 1]
matrix_copy = matrix
matrix_copy(2, :) = []
matrix_copy = matrix
matrix_copy(:, 2) = [1, 1, 1]
matrix_copy = matrix
matrix_copy(:, 2) = []

接下来的截图是被修改过的矩阵的内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
矩阵的转置

矩阵的转置的代码如下所示:

matrix = matrix'

转置后的矩阵如下图所示:
在这里插入图片描述
矩阵的拼接

两个矩阵可以进行拼接,可以使用 cat 函数进行矩阵的拼接,代码格式如下所示:

矩阵 = cat(1,矩阵1,矩阵2) 将矩阵1和矩阵2进行垂直拼接
矩阵 = cat(2,矩阵1,矩阵2) 将矩阵1和矩阵2进行水平拼接

示例代码如下所示:

matrix_1 = cat(1, matrix, matrix)
matrix_1 = cat(2, matrix, matrix)

生成的矩阵如下所示:
在这里插入图片描述
变维

矩阵可以变为其他维度的矩阵,代码格式如下所示:

矩阵 = reshape(矩阵,m,n) 将原矩阵变为m行n列的矩阵

示例代码如下所示:

matrix_1 = reshape(matrix, 1, 9)

生成的矩阵如下图所示:
在这里插入图片描述

4.矩阵信息的获取

矩阵的行列数

如果需要获取矩阵的行列数,可以通过 size 函数获取,代码格式如下图所示:

[行数,列数] = size(矩阵)

示例代码如下:

[m, n] = size(matrix)

结果如下图所示:
在这里插入图片描述
矩阵行列数的最大值

如果需要获取矩阵的行列数的最大值可以通过 length 函数进行,代码格式如下所示:

max = length(矩阵)

示例代码如下所示:

max_length = length(matrix)

获得的最大值如下图所示:
在这里插入图片描述

5.字符串

创建

具体创建格式如下所示:

string_1 = 'Lpy_Now' 定义一个字符串,通过一对单引号进行定义
string_2 = ['Hello', 'World', 'Lpy_Now'] 通过中括号将多个字符串进行拼接
string_3 = strcat(string_1, string_2) 通过strcat函数将两个字符串进行拼接
string_4 = strvcat(string_1 ,string_2) 通过strycat函数将两个字符串连接并产生多行字符
string_5 = double(string) 取得字符串的ASCII值,同样abs函数也可以实现这一操作
string_6 = char(number) 将ASCII转化为字符串

接下来我们对这些函数进行实践,示例代码如下:

string_1 = 'Lpy_Now'
string_2 = ['Hello', 'World', 'Lpy_Now']
string_3 = strcat(string_1, string_2)
string_4 = strvcat(string_1, string_2)
string_5 = double(string_1)
string_6 = char(100)

具体结果如下图所示:
在这里插入图片描述
在这里插入图片描述
比较

字符串之间可以进行比较,具体代码格式如下所示:

strcmp(string_1, string_2) 将字符串逐位进行比较,返回1则相等,返回0则不相等
strncmp(string_1, string_2, n) 将字符串的前n位逐位进行比较,返回1则相等,返回0则不相等
strcmpi(string_1, string_2) 将字符串忽略大小写逐位进行比较,返回1则相等,返回0则不相等
strncmpi(string_1, string_2, n) 将字符串的前n位忽略大小写逐位进行比较,返回1则相等,返回0则不相等

代码示例如下所示:

string_1 = 'lpy_now'
string_2 = 'Lpy_Now'
strcmp(string_1, string_2)
strncmp(string_1, string_2, 2)
strcmpi(string_1, string_2)
strncmpi(string_1, string_2, 2)

具体结果如下所示:
在这里插入图片描述
查找替换

通过下面的函数可以对一个字符串进行查找和替换,具体代码格式如下所示:

strfind(string_1, string_2) 在string_1字符串中查找string_2字符串的位置
strtok(string) 截取string第一个分隔符(字符,tab,回车)前的字符
strrep(string_1, string_2, string_3) 在字符串string_1中用string_3替换string_2

代码示例如下所示:

string_1 = ['Hello World', 'Lpy_Now', ' Hi']
string_2 = 'Lpy_Now'
strfind(string_1, string_2)
strtok(string_1)
strrep(string_1, string_2, string_1)

代码实现的结果如下:
在这里插入图片描述
其他操作

还有以下其他的对字符串的操作,具体的函数格式如下所示:

upper(string) 将字符串全部转为大写
lower(string) 将字符串全部转为小写
strjust(string, 'right') 将字符串右对齐,同样'left'为左对齐,'center'为中间对齐
strtrim(string) 删除字符串开头结尾的空格
eval(string) 将字符串作为代码运行

这里由于不太重要就不演示了

转换

字符串和数字之间可以进行转换,在 Matlab 中进行转换的固定格式是:格式2格式

6.程序

前面说过,学习 Matlab 需要一定的编程语言基础,所以这里一些具体的语法细节不再赘述

选择结构

首先我们介绍的是 if-else 选择结构接下来的代码我们假定 number_1 = 0,number_2 = 1,我们先来看一段代码:

if number_1 > 0
	disp(number_1);
elseif number_1 == 0
	disp(number_2);
else number_1 < 0
	disp(number_2);
end

通过上面的代码我们可以清楚的了解到在 Matlab 语言中 else-if 的使用方式,其中disp函数是输出这个变量,相当于 C 语言的 printf 等等

接下来我们来看看 switch-case 语句,下面是一段运用了 switch-case 语句的代码,如下所示:

switch number_1
	case 0
		disp(number_1);
	case 1
		disp(number_2);
	otherwise
		disp('No OutPut');
end

上面的代码是在对 number_1 进行判断,如果 number_1 的值为 0 那么输出 number_1 的值,如果为 1 输出 number_2 的值,如果上面的都不满足,则输出 No OutPut 这样一段字符串,这段程序运行结果如下所示:
在这里插入图片描述
接下来我们看一下 Matlab 中的 try-catch 语句,这个语句是意味着如果我们需要这个程序即使在程序运算出错的情况下不至于出错而是仍完成一定的操作,那么我们先来看下面的代码:

try
	number = number_1 + number_2;
catch
	number = number_1 - number_2;
end
disp(number)

上面的代码中如果 number_1 + number_2 运算可以得到结果,那么将两数之和赋值给变量 number,否则将两数之差赋值给变量 number,在程序的最后输出 number 的值,程序的运行结果如下图所示:
在这里插入图片描述
循环结构

首先来介绍的是 for 循环结构,for 循环的使用结构如下所示:

for 变量 = 初值 : 步长 : 终值
	执行语句;
end

接下来我们看一段 for 循环语句的代码,如下所示:

for i = 1 : 1 : 10
	disp(i);
end

上述代码让变量从 1 开始逐个输出变量的值直到变量等于 10,下面我们看下程序运行的结果:
在这里插入图片描述
下面是 while 循环语句,while 循环和 C 语言等其他语言中的运行方式一样,下面看一段代码:

i = 1
while i <= 10
	disp(i);
	i = i + 1;
end

上面的代码将 i 逐步运行到 10,并逐步输出 i 的值,程序的运行结果如下图所示:
在这里插入图片描述
程序控制

在 Matlab 中有和 C 语言相同的程序控制语句,具体几种用法和 C 语言的用法类似,这里只列出这几种程序控制语句:

continue 跳出当前循环的语句,重新进入下一循环
break 跳出当前循环
return 跳出程序

7. m文件

脚本文件

脚本文件可以在命令行中被调用,首先我们尝试创建一个脚本文件:在当前文件夹中右键,在右键的菜单中选中新建文件,再选择脚本来创建一个脚本,并命名为 Sum,双击脚本进行编辑,输入如下代码并保存:

number_1 = 1
number_2 = 2
disp(number_1 + number_2)

接下来我们在命令行窗口调用这个脚本:
在这里插入图片描述
函数文件

接下来我们介绍函数文件,函数和脚本的不同之处在于函数可以进行传入和传出参数,从而对传入的参数进行处理,首先我们先来创建一个函数文件,和创建脚本文件的方式类似,都是在当前文件夹窗口右键,在弹出的菜单中选择心建文件,之后选择函数,来创建一个函数文件,接下来我们创建一个名字为 Sum 的函数,并输入下面的代码并保存:

function [sum, total] = Sum(number_1, number_2)
    total = 2
    sum = number_1 + number_2
end

上面的代码将变量 number_1 和 number_2 传入函数 Sum,并且返回传入的变量的个数 total 和二者之和 sum

接下来我们在命令行窗口对函数进行调用,调用代码如下:

[a, b] = Sum(number_1, number_2)

上面的代码对函数 Sum 进行了调用,将返回的 sum 的值赋值给变量 a,将返回的变量 total 的值赋值给 b,下图是对这个函数的调用结果:
在这里插入图片描述

8.绘图

我们首先先确定一些数据供之后的程序使用,代码如下:

x = 0 : 0.1 : 10
y = sin(x)
z = cos(x)

我们先将 x 定义为从 0 到 10 的间隔为 0.1 的所有数字,y 为每一个 x 所对应的 sin 值,z 为每一个 x 所对应的 cos 值

二维曲线的绘制

二维曲线的绘图最基础的函数是 plot 函数,我们先来尝试绘制 x-y 函数的图像:

plot(y)

绘制结果如下图所示:
在这里插入图片描述
接下来我们以 x 为横轴,y 为纵轴重新绘制一下曲线:

plot(x, y)

绘制出的图像如下所示:
在这里插入图片描述
同样在 Matlab 中可以对矩阵进行绘图,如果对矩阵进行绘图是按照矩阵的每一列进行绘制,首先我们先将y 和 z 变为列并且拼接在一起:

matrix = [y', z']

之后再绘制这个矩阵的图像,图线的颜色会被自动区分,由于在 Matlab 中数据是以列的方式进行存储的,所以在绘制 y-x z-x 的图像的时候需要将数据转置后才能进行绘制,接下来进行绘制图像:

plot(matrix)

绘制的图像结果如下所示:
在这里插入图片描述
图像格式的设置

在 Matlab 中图像的形状和颜色并不是一成不变的,而是可以经过人为改变的,代码格式如下所示:

plot(横坐标,纵坐标,'a b c') a代表颜色,b代表线的形式,c代表点的形式

常见的图线的形式如下所示:

图线的颜色:b蓝 g绿 r红 c青 m紫 y黄 k黑 w白
图线的形式:-实线 :点线 --虚线 -.点画线
点的形式:.实点 o圆圈 x叉 +十字 *星号 s方块 d钻石 v下三角 ^上三角 <左三角 >右三角 p五角星 h六角星

演示如下:

plot(x, y, 'k -- x')

绘制的图线效果如下图所示:
在这里插入图片描述
接下来我们可以使用 axis 函数来确定坐标轴的最大值最小值从而设置坐标轴的范围,axis 的代码格式如下所示:

axis([x_min, x_max, y_min, y_max]) 其中x_min为x轴的最小值,x_max为x轴的最大值,y_min为y轴的最小值,y_max为y轴的最大值

示例代码如下所示:

plot(x, y, 'k -- x'), axis([0, 10, -2, 2])

所生成的图像如下图所示:
在这里插入图片描述
接下来我们可以通过函数尝试设置图像的标题和坐标轴的标签,代码格式如下所示:

title('string') 设置图像的标题为string
xlabel('string') 设置图像坐标轴的标签,同理还有ylabel, zlabel
legend('string_1', 'string_2', 'location', 'best') 将图线的名称命名为string_1, string_2其顺序和绘制图像的顺序相同,并且将图像的位置放置在最合适的位置

代码示例如下所示:

plot(x, matrix), axis([0, 10, -2, 2]), legend('sin', 'cos', 'location', 'best')

图像如下所示:
在这里插入图片描述
如果绘制接下来的曲线的同时还需要之前曲线的存在,就需要使用到 hold on 语句,代码示例如下所示:

plot(x, y)
hold on
plot(x, z)

我们可以看到下面的图像同时显示了出来:
在这里插入图片描述
如果不需要保持,那么可以使用语句 hold off

分块绘图,如果我们需要在一个窗口中显示多张图线,可以使用函数 subplot ,具体的代码格式如下所示:

subpolt(x, y, n) 将窗口分成 x * y 个小窗口,将接下来的图像绘制在第n个小窗口中

示例代码如下所示:

subplot(1, 2, 1);
plot(x, y);
subplot(1, 2, 2);
plot(x, z);

生成的图像的结果如下所示:
在这里插入图片描述
特殊曲线的绘制

下面列出了一些特殊曲线的设置方式:

柱状图
bar(x, y, width, '参数');

饼形图
pie(x, explode, 'lable');  

直方图
hist(y, n);  
hist(y, x); 

离散数据图
stairs(x, y, 'b-o'); 
stem(x, y, 'fill');
candle(HI, LO, CL, OP);

向量图
compass(u, v, 'b-o');
compass(Z, 'b-o');
feather(u, v, 'b-o');
feather(Z, 'b-o');
quiver(x, y, u, v); 

极坐标图
polar(theta, rho, 'b-o'); 
theta = -pi:0.01:pi;
rho = sin(theta);
polar(theta, rho, 'b')

对数坐标图
semilogx(x1, y1, 'b-o');  

双纵坐标
plotyy(x1, y1, x2, y2, 'fun1', 'fun2'); 

函数绘图
f = 'sin(2*x)';
ezplot(f, [0, 2*pi]);  
x = '2*cos(t)';
y = '4*sin(t)';
ezplot(x, y);  

由于上面的函数使用并不频繁,所以这里不再赘述,如果需要了解具体的函数的使用方法,可以到官方手册进行了解

三维曲线曲面的绘制

对于三维曲线的绘制和二维曲线的绘制的方式类似,可以通过函数 plot3 进行绘制,绘制的格式和二维曲线的绘制方式相同,示例代码如下所示:

plot3(x, y, z)

绘制的结果如下所示:
在这里插入图片描述
接下来我们尝试绘制三维网格图像,首先我们先定义 x,y 轴的采样点,也同时规定了 x,y 轴的范围,代码如下所示:

x = -5 : 0.1 : 5;
y = -5 : 0.1 : 5;

接着我们使用函数获取在 xoy 平面上的网格点,这样才能得到网格曲面,这里需要用到函数 meshgrid 示例代码如下:

[X, Y] = meshgrid(x, y);

接着我们来确定 X,Y,Z 之间的关系,代码如下所示:

Z = X .^ 2 + Y .^ 2;

这一一定需要用到点乘方,因为这里需要的是数据之间相乘而不是矩阵相乘,所以这里必须加上点乘方

接下来可以通过 mesh 函数绘制这样的三位网格图像,代码如下所示:

mesh(X, Y, Z);

其中 X 和 Y 是通过 meshgrid 函数获得的网格点,Z 是网格顶点,绘制的图像如下图所示:
在这里插入图片描述
这里如果使用 surf 函数那么可以生成三位表面图,代码主体和上面相同,代码如下所示:

x = -5 : 0.1 : 5;
y = -5 : 0.1 : 5;
[X, Y] = meshgrid(x, y);
Z = X .^ 2 + Y .^ 2;
surf(X, Y, Z);

生成的图像如下图所示:
在这里插入图片描述

9.多项式

创建

我们先尝试创建一个系数向量,这个系数向量是按 x 降幂进行排列的,最右边是常数,我们可以使用函数 ploy2sym 进行创建一个可以运算的字符串函数,代码如下所示:

p = [1, 2, 3, 4, 5];
f = ploy2sym(p);
f

生成的多项式如下所示:
在这里插入图片描述
求值

如果我们要对多项式进行求值,可以使用 polyval 函数进行求值,我们尝试求当 x = 4 时的值,代码如下所示:

x = 4;
polyval(p, x)

计算结果如下所示:
在这里插入图片描述
求根

同时通过函数 roots 可以求得多项式根,当然通过函数 poly 也可以通过根求得多项式,其结果为系数矩阵,代码示例如下所示:

r = roots(p)
p = poly(r)

其结果如下所示:
在这里插入图片描述

10.数据插值

一维插值

yi = interp1(X, Y, xi, ‘method’)
X = [-3, -1, 0, 1, 3];
Y = [9, 1, 0, 1, 9]; XY为已知点横纵坐标向量
y2 = interp1(X, Y, 2); 差值预估在x=2的y的值,x不能超过已知范围(此处x<3)
y2m = interp1(X, Y, 2, ‘spline’); 用spline方法(三次样条)差值预估在x=2的y的值

二维插值

zi = interp1(X, Y, Z, xi, yi, ‘method’)

11.数据统计

我们先定义如下数据,方便以后的操作:

matrix = [1, 2, 3, 4, 5]
matrix_1 = [1, 2, 3; 4, 5, 6]

矩阵的最值

首先来看矩阵的最大值和最小值,可以通过内置函数 maxmin 来实现,由于最大值和最小值操作完全一样,所以这里的示例代码全部以 max 函数为示例,示例代码如下:

max(matrix)

首先求得了矩阵的最大值,结果如下:
在这里插入图片描述
接下来我们尝试求得矩阵的最大值,并返回最大值的位置:

[max_number, posion] = max(matrix)

结果如下图所示:
在这里插入图片描述
下面我们尝试求一个矩阵的最大值,代码如下:

[max_number, posion] = max(matrix_1, [], 1)
[max_number, posion] = max(matrix_1, [], 2)

当第三个参数为 1 时,返回每一列最大元素所组成的行向量,当第三个参数为 2 时,返回每一行最大元素所组成的列向量,其结果如下图所示:
在这里插入图片描述
均值和中值

在 Matlab 中可以通过 meanmedian 函数获得矩阵的均值和中值,示例代码如下:

mean(matrix)
median(matrix)

其结果如下图所示:
在这里插入图片描述
同样使用上上面的函数也可以对矩阵求均值和中值,代码如下所示:

mean(matrix_1, 1)
mean(matrix_1, 2)
median(matrix_1, 1)
median(matrix_1, 2)

具体结果如下图所示:
在这里插入图片描述
排序

在 Matlab 中运用的较多的时排序功能,是由 sort 函数进行实现的,同样可以对数列和矩阵进行操作,代码格式如下所示:

sort(matrix, 1, 'ascend') 其中matrix时待排序的数据或者矩阵,1为按列排序,2为按行排序,第三个参数当参数为ascend时按升序排序,为descend时按降序排序,当矩阵为一维时则不需要第二个参数

示例代码如下所示

sort(matrix, 'ascend')
sort(matrix, 'descend')
sort(matrix_1, 1, 'ascend')
sort(matrix_1, 2, 'descend')

运行结果如下所示:
在这里插入图片描述
求和积累加累成

Matlab 中通过函数 sumprodcumsumsumpord 可以分别对数据进行求和,求积,求累加,求累乘的操作,示例代码如下所示:

sum(matrix)
prod(matrix)
cumsum(matrix)
cumprod(matrix)

获得的结果如下图所示:

在这里插入图片描述

文章将会持续更新……

数学建模是指使用数学方解决实际问题的过程。而MATLAB是一个强大的数学软件工具,可以用于数学建模。在MATLAB中,可以使用一系列函数来进行数学计算和数据处理。 首先,你可以使用sum函数对数据进行求和操作。该函数可以接受一个矩阵作为参数,并返回矩阵中所有元素的和。例如,sum(matrix)会返回矩阵中所有元素的和。 另外,你还可以使用prod函数来计算矩阵中所有元素的乘积。该函数也可以接受一个矩阵作为参数,并返回矩阵中所有元素的乘积。例如,prod(matrix)会返回矩阵中所有元素的乘积。 如果你需要矩阵中的元素进行累加或累乘操作,可以使用cumsum和cumprod函数。cumsum函数返回一个矩阵,其中每个元素是原始矩阵中该位置及之前位置的元素的累加和。而cumprod函数返回一个矩阵,其中每个元素是原始矩阵中该位置及之前位置的元素的累乘积。例如,cumsum(matrix)和cumprod(matrix)会分别返回矩阵中元素的累加和和累乘积。 如果你需要计算矩阵的逆矩阵,可以使用pinv函数。该函数可以接受一个矩阵作为参数,并返回其逆矩阵。例如,pinv(matrix)会返回矩阵的逆矩阵。 在MATLAB中,你可以将你编写的源代码存储为一个.m文件,这被称为MATLAB的脚本文件。你也可以使用.mat文件来存储数据。这些文件是MATLAB专用的数据文件格式。可以使用save函数将数据保存到.mat文件中,使用load函数将数据从.mat文件中加载到MATLAB工作空间中。 希望以上信息对你有所帮助,更多关于MATLAB的详细信息可以参考MATLAB的官方文档和教程
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值