备战数学建模1——MATLAB矩阵,二维图、三维图!(超级全面易懂)

article/2025/9/18 11:00:37

目录

    • 一、矩阵超级基础的内容
      • 1.创建一个1行6列的矩阵
      • 2.对矩阵中每个元素都加3
      • 3.plot函数作图。
      • 4.多维矩阵与常见运算
      • 5.矩阵乘法,和矩阵点乘
      • 6.使用矩阵A对方程A*x= b求解
      • 7.Matlab的迁就补全(标量非标量,不同维度)
    • 二、Matlab四种常见二维图
      • 1.线图
      • 2.条形图
      • 3.极坐标图
      • 4.散点图
    • 三、Matlab三维图
      • 1.三维曲面图
      • 2.画子图(几个图画在一张画布上)

一、矩阵超级基础的内容

1.创建一个1行6列的矩阵

a =[1 2 3 8 7 4]

2.对矩阵中每个元素都加3

(线代里面只有和规格的才能加减)
在Matlab里面,如果一个操作数是标量,而另一个操作数不是标量,MATLAB会将该标量隐式扩展到与另一个操作数具有相同的大小

b=a+3

结果:

a =1     2     3     8     7     4
b =4     5     6    11    10     7

3.plot函数作图。

索引为横坐标。索引就是该数字在矩阵里是"第几个"

plot(b)
grid on

grid on 是添加网格线的意思
在这里插入图片描述
在这里插入图片描述
索引为横坐标,数组的值就是函数的纵坐标值

4.多维矩阵与常见运算

空格或逗号分隔同一行元素, 分号分隔各行
常见运算:转置、取逆、求特征值和特征向量

A = [3 2 1;2 4 1;3 9 2]
B = A' %求转置矩阵[D,V] = eig(A) %特征值 特征向量
E = inv(A) %求逆矩阵 
F = A*E    %验证结果是否为单位矩阵

结果:

A =3     2     12     4     13     9     2
B =3     2     32     4     91     1     2
D =-0.3534   -0.5691   -0.2508-0.4152    0.1144   -0.1181-0.8383    0.8143    0.9608
V =7.7217         0         00    1.1673         00         0    0.1109
E =-1.0000    5.0000   -2.0000-1.0000    3.0000   -1.00006.0000  -21.0000    8.0000
F =1     0     00     1     00     0     1

5.矩阵乘法,和矩阵点乘

C =A*B     %矩阵乘法
D = A.*B   %矩阵点乘,即对应元素相乘

结果:

C =14    15    2915    21    4429    44    94
D =9     4     34    16     93     9     4

6.使用矩阵A对方程A*x= b求解

方法是使用\ (反斜杠)运算符,即A的逆矩阵乘以矩阵b

b =[1;3;5]
x = A\b
A
%验证一下
t = A*x-b  %结果应该为0

结果如下:

b =135
x =43-17
A =3     2     12     4     13     9     2
t =000

7.Matlab的迁就补全(标量非标量,不同维度)

在Matlab里面,如果一个操作数是标量,而另一个操作数不是标量,MATLAB会将该标量隐式扩展到与另一个操作数具有相同的大小

H = [1 1 1; 2 2 2;3 3 3]
K = 4L = K*H %运算时,K变为3X3的对角矩阵,对角线上都是4
M = K+H %运算时,K编程3X3的矩阵,每个元素都是4

结果:1.得到 4乘以每一个元素;2得到4加上每一个元素

L =4     4     48     8     812    12    12
M =5     5     56     6     67     7     7

不同维度的行向量和列向量相加

N = [1 2 3 4]
P =[5;6;7]
Q = N+P

结果:

N =1     2     3     4
P =567
Q =6     7     8     97     8     9    108     9    10    11

一般不要进行这种不同维度的矩阵运算!

二、Matlab四种常见二维图

1.线图

🎄plot函数用来创建x和y值的简单线图。

x = 0:0.05:30; %从030,每隔005取一次值
y = sin(x);
plot(x,y);  %以x的值为横坐标 以y为纵坐标做线性图
% 若(x,y,'LineWidth',2)可变粗
xlabel("横轴标题")  %横轴标签
ylabel("纵轴标题")
%grid on %显示网格
%axis([0,20,-1.5,1.5])  %设置横纵坐标范围

原始图:
在这里插入图片描述
改变范围前后对比图:
在这里插入图片描述
如果增大间距: 一般的画图间距是:0.05
间距变大的话,直接变得有棱有角的,对于函数图来说,不精细。但是如果只是折线图的话,就完全可以。
在这里插入图片描述

plot函数改颜色粗细合集:
改粗细:

plot(x,y,'LineWidth',2);  %要再改大就把2变为3

🎄多组函数显示在同一张图

y1 = sin(x)
y2 = cos(x)
plot(x,y1,x,y2)
axis([0,20,-1.5,1.5]) %X,Y的取值范围  可调节

在这里插入图片描述

2.条形图

bar函数创建重直条形图
barh函数用来创建水平条形图

t = -3:0.5:3;
p = exp(-t.*t); %函数 exp 就是自然对数e  底数是e 指数就是负t方
bar(t,p)
barh(t,P)

运行结果:
在这里插入图片描述
这两张图在我电脑上是 一张一张出来的,有点儿不方便,得取找找之前数学实验,婷姐的做法

3.极坐标图

polarplot函数用来绘制极坐标图

th = 0:0.01:2*pi;
%abs 求绝对值或复数的模
radi = abs(sin(7*th).*cos(10*th));
%radi = abs(sin(2*th).*cos(2*th));
polarplot(th,radi)

运行结果:
在这里插入图片描述

4.散点图

scatter函数用来绘制x和y值的散图

Height = randn(1000,1);  %生成符合正态分布的随机数
Weight = randn(1000,1);
scatter(Height,Weight)
xlabel( 'Height')
ylabel( 'Wesght')

注意:
✨自己给数据作图

Height = randn(1000,1); %把这个改为自己的数据  矩阵形式存储数据  再调用画图函数就行    

✨随机数函数

randn(1000,1);  %生成符合正态分布的随机数 最大为1000 最小为1

备战 数学建模:https://blog.csdn.net/nuist_NJUPT/article/details/123945181

三、Matlab三维图

1.三维曲面图

surf函数可用来做三维曲面图。
常见用法:surf(X,Y,Z)或者surf(X)
首先需要用meshgrid创建好空间上(x,y)点

[X,Y] = meshgrid(-2:0. 2:2);  %设置不同的步长(间距)影响观感
%Z = X.^2+Y.^2
Z = X.*exp(-X.^2-Y.^2);
surf(X,Y,Z); 
%colormap hsv
% colormap %设置颜色,可跟winter、 summer等 hsv默认色
%colorbar

结果:左边经典色,右边是冷色系在这里插入图片描述
介绍一下surf函数的用法:
✨ surf(X,Y,Z)
创建一个三维曲面图,它是一个具有实色边和实色面的三维曲面。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。曲面的颜色根据 Z 指定的高度而变化。
✨surf(X,Y,Z,C) 指定曲面的颜色。

✨surf(Z)
创建一个曲面图,并将 Z 中元素的列索引行索引用作 x 坐标和 y 坐标。
✨surf(Z,C) 指定曲面的颜色。


meshgrid函数用来生成网格矩阵,既可以是二维网格矩阵,又可以是三维网格矩阵。

1、[X,Y] = meshgrid(x,y) :基于向量x和y中包含的坐标返回二维网格坐标。X是一个矩阵,每一行是x的一个副本,Y也是一个矩阵,每一列是y的一个副本。坐标X和Y表示的网格有length(y)个行和length(x)个列。

2 、[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x)相同,返回网格大小为length(x)*length(x)的方形网格矩阵。

3、 [X,Y,Z] = meshgrid(x,y,z),返回由向量x,y,z定义的三维网格坐标,X,Y和Z表示的网格大小为length(x)*length(y)*length(z)。


2.画子图(几个图画在一张画布上)

使用subplot函数可以在同一窗口的不同子区域显示多个绘图
subplot(a,b,c) a行b列的布局,c表示这是第几张图

th = 0:0.01:2*pi;
radi = abs(sin(2*th).*cos(2*th));
Height = randn(1000,1);  %生成符合正态分布的随机数
Weight = randn(1000,1);
subplot(2,2,1);surf(X.^2);title('1st')
subplot(2,2,2);surf(Y.^3);title('2nd')
subplot(2,2,3);polarplot(th,radi);title('3rd')
subplot(2,2,4);scatter(Height,Weight);title('4th')

结果:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/AJBUDiKk.shtml

相关文章

MATLAB学习与使用:使用矩阵绘制三维图形

MATLAB绘制三维图形 1.基本的绘图命令 1)plot3函数 plot3(x,y,z)%x,y,z为向量或者矩阵 注意x,y,z全为向量时向量长度必须相同 plot3(x,y,z,b.,MarkerSize,0.5) % MarkerSize 表示点的大小,b.表示绿色的点。 eg.绘制三维螺旋线(向量为参数&…

MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

目录 1 在MATLAB中初始化二维矩阵2 在MATLAB中初始化三维矩阵3 在MATLAB中初始化四维矩阵4 在MATLAB中初始化N维矩阵 1 在MATLAB中初始化二维矩阵 在MATLAB中初始化一个二维矩阵是很容易的,我们既可以直接把矩阵的元素值写出,比如下面这样: …

matlab的三维数组(三维矩阵)

matlab的三维矩阵与其他编程语言不太一样 比如: test4.java public class test4 {public static void main(String[] args){int[][][] arr new int[][][]{{{1,2,3},{4,5,6},},{{7,8,9},{10,11,12},},};} }这个程序里arr是个2*2*3的数组。 在java里 arr[i][j][k]表…

Java 面向对象基本理解

1. 类和对象 1.1 类和对象的理解【理解】 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合 简单理解:类…

JS面向对象的理解

JS面向对象的理解 1.理解对象1.1.new 操作符 Object 创建对象1.2.字面式创建对象 2.创建对象2.1.工厂模式2.2.构造函数模式2.3.原型模式2.3.1.原型模式2.3.2.理解原型对象2.3.3.原型与in操作符2.3.4.更简单的原型语法2.3.5.原型的动态性2.3.6.原型对象的原型2.3.7.原型对象的问…

【java基础】-谈谈对面向对象理解

一 前言 本篇文章的核心知识如下,主要是帮助大家更好的理解面向对象编程; 二面向对象VS面向过程 2.1 面向过程编程 面向过程编程(Process Oriented Programming )其意指是面向过程编程,what?,过程是什…

对Java面向对象的理解

Java的面向对象的理解 1.思想简述: 面向对象是一种思想。它将数据和操作数据的方法封装在对象中,从而使对象有了一些功能,也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节&am…

如何理解Python中的面向对象

一、认识面向对象是什么 面向过程的程序设计的核心就是过程,就是流水线式的思维,过程就是解决问题的步骤,面向过程的设计就好像一条设计好的流水线,考虑周全什么就处理什么东西。 优点在于极大地降低了写程序的复杂度&#xff0c…

Java面向对象的理解

1. 面向对象 Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。其基本思想是使用对象、类、继承、封装、多态等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可…

如何理解Java中的面向对象

好几次面试都问到了这个问题,回答的也都不好,暂且总结一下: 我的理解是:面向对象是向现实世界模型的自然延伸,这是一种”万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一…

对于面向对象的简单理解

引言 一直都想写一篇关于面向对象的文章,但是由于之前自己也是一知半解所以也就一直没有付出行动。关于面向对象的这类文章网上已经有很多大牛写过了,在这里呢我也就不班门弄斧了。就简单的说一下我的理解,话不多说接下来进入主题。 什么是…

js面向对象理解

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但是,ECMAScript 没有类的概念,因此它的对象…

Python面向对象理解

一,初始面向对象. 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点是:极大的降低了写程序的复杂度…

面向对象理解——多态

何为多态 定义: 多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。系统在运行时(而非编译时),能够根据其类型确定调用哪个重载的成员函数的能…

面向对象的理解及相关概念(封装,继承,多态)

前言 面向对象程序设计(OOP)是当今主流的程序设计范性,它取代了结构化或过程式编程技术。 一、面向对象是什么? 1、定义: 面向对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存…

面向对象的理解

一、什么是面向对象? 对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继…

面向对象理解

1.早期发展 面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法…

error: unknown file type '.pyx' (from 'pycocotools/_mask.pyx')

在 YOLO v3模型中运用 cocoapi 进行评估模型,安装时报错显示: building pycocotools._mask extension error: unknown file type .pyx (from pycocotools/_mask.pyx) make: *** [all] Error 1可能的解决方法:   运行的 Python 版本不对。 …

sklearn/tree/_criterion.pyx

注解: criterions分为几类,其中有classification criterions与regression criterions。classification criterions是针对离散的,regression criterions是针对连续分布的 本文主要讲解一下RegressionCriterion。 RegressionCriterion用于回归树(Regression Tree 回归树)中…

python中导入.pyx文件的问题解决

已经几次遇到这种问题了, 里面的region指的是一个.pyx文件。 ImportError: cannot import name region from toolkit.utils (D:\******\RPN\pysot-master\toolkit\utils\__init__.py) 解决方案: 创建一个setup.py文件,一般如果是搬运的话里面会有&…