随笔 - 352  文章 - 0  评论 - 3  阅读 - 63255

matlab学习1(基本操作、stringchar、矩阵运算、基础图)

1. matlab简介

matlab是矩阵实验室,数据是以矩阵的形式存在。

2.基本操作

1).直接在命令行输入指令

2).在脚本文件章编写程序后运行

  脚本文件:存放代码的文件,尾缀:.m

  实时脚本文件界面方便,将结果实时显示在代码旁边(可以加代码,图片,类似于一个文档编辑器,很推荐使用)

3).在函数文件中编写程序,再在脚本文件中调用

  函数文件相当于做好一个工具,以后需要的时候可以直接调用,尾缀也是.m

  有固定的格式:如function[sigma, theta, x, y, final, res] = Simple(f, a, b, index)

4).符号

注释:%+注释内容

分号:在行末尾加分号,会执行计算但是不会在命令行窗口显示输出

命令行输入:clc(清空命令行)、clear(清空工作区)

3.string变量和char变量

在2017a及以后的版本可以使用双引号。

得到的是一个string变量,但是char得到的是多个char变量

string类型可以直接用+进行添加

char类型需要以一下格式进行添加

s1='abcde'

s2=[s1,'12345']

 

4.简单矩阵运算

 

plot函数作图,索引为横坐标

grid on  :添加网格线

多维矩阵:同一行元素用空格或逗号进行划分,用分号来分隔多行

常见矩阵运算:转置、取逆、求特征值和特征向量

复制代码
求转置:  B = A'
求特征值和特征向量:  [D, V] = eig(A)
    其中D存的是特征向量,V存的是每个特征向量的特征值
求逆矩阵:    E = inv(A)
验证是否为逆矩阵:  F = A * E
    如果F是单位矩阵就正确了
矩阵乘法:
  C = A * B
矩阵点乘:
  E = A.*B    (就是对应位置的数相乘)
求解方程 A*x=b:
  x=A\b    (表示A的逆矩阵乘b,谁在斜杠下面的位置就是需要取逆的矩阵,A/b则A乘b的逆矩阵)
  验证方法:s = A*x+b  (如果s是个零矩阵说明正确)
复制代码

一个数是标量,另一个数不是标量,则matlab会将该标量隐式扩展为与另外一个操作数具有相同大小

H =[1 1 1; 2 2 2; 3 3 3]
K = 4
L = K*H    %运算时K变成3x3矩阵,对角线元素为4
M= K+H    %运算时K变成3x3的矩阵,每个元素为4

不同维度的行向量和列向量相加(N会变成3行的且每一行都和第一行相同,P会变成5列的每一列和第一列相同)最好不要这样子写

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

5.图

5.1线图

plot函数创建xy值的简单线图

x = 0:0.05:30    % 起点 : 步长  : 终点
y = sin(x);
plot(x,y)

xlabel("横轴标题")
ylabel("纵轴标题")
% grid on    %显示网络
% axis([0 20 -1.5 1.5])    % 设置横纵轴范围横轴:0~20 纵轴:-1.5~1.5

 

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

y1 = sin(x);
y2 = cos(x);
plot(x,y1,x,y2)  %(x,y1,x,y2,'LineWidth',1)可以变粗
axis([0 20 -1.5 1.5])

 5.2条形图

bar函数创建垂直条形图

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

t = -3:0.5:3;
p = exp(-t.*t);  %相当于是e的-t^2
bar(t,p)
barh(t,p)

 5.3极坐标图

polarplot绘制极坐标图

theta = 0:0.01:2*pi;
% abs为绝对值
radi = abs(sin(7*theta).*cos(10*theta));
polarplot(theta,radi)   %分别为弧度和半径

 

 

5.4散点图

scatter函数绘制xy值的散点图

Height = randn(1000,1);  %1000行1列
Weight = randn(1000,1);
scatter(Height,Weight)
xlabel('Height')
ylabel('Weight')

 6.三维图

6.1三维曲面图

surf函数可用来做三维曲面图,一般是展示z=z(x,y)的图像

需要先用meshgrid创建空间(x,y)的点

[X,Y] = meshgrid(-2:0.2:2);
Z = X.*exp(-X.^2-Y.^2);
surf(X,Y,Z)

 

 6.2子图

使用subplot函数可以在同一窗口的不同子区域显示多个绘图

复制代码
theta = 0:0.01:2*pi;
radi = abs(sin(2*theta).*cos(2*theta))
Height = randn(1000,1)
Weight = randn(1000,1)
%subplot(2,2,1):两行两列中的第一个图
subplot(2,2,1) ;surf(X.^2); title('1st');
subplot(2,2,2);surf(Y.^3);title('2nd')
subplot(2,2,3);polarplot(theta,radi);title('3rd')
subplot(2,2,4);scatter(Height,Weight);title('4th')
复制代码

 

 

posted on   201812  阅读(262)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示