Matlab_Bili_台大_郭彦甫

  • (一)数据结构与文件存取_P4
    • 1 数据结构之 Structure
    • 2 数据结构之Cell
    • 3 矩阵matrix到cell的转化
    • 4 三维数组的构建
    • 5 Mat、Txt数据的存储与读取
    • 6 Excel数据的存储与读取
  • (二)初阶绘图_P5
    • 1 将多条曲线绘制于同一个坐标系中
    • 2 更改图形外观
    • 3 添加标题、添加图例、坐标轴名称、网格线等
    • 4 添加注释和箭头
    • 5 图形外观进一步优化
    • 6 将多条曲线绘制于多张_figure_window

说明:

  1. 视频链接:https://www.bilibili.com/video/BV1GJ41137UH
  2. 以下代码为Matlab语法格式,拷贝至Matlab运行查看更加直观

(一)数据结构与文件存取_P4

1 数据结构之 Structure

% Bilibili 台大郭彦甫 P4
% 数据结构之 matrix,strut,cell 的创建与索引
% 文件的读取与存储%% 1 数据结构之 structure: 存储异质数据
% struct name;
% field name;
% nest structure;% 利用语句struct()语句创建nesting structure;
% 其中name是field名,Chen qian是其存储值;
% data是第二层嵌套结构,age和grade分别是其field名;
A = struct('name','Chen qian','data',struct('age',24,'grade','95'));% 随后用另一种方法添加第2条数据;
A(2).name = 'Zhang san';
A(2).data.age = 27;
A(2).data.grade = 88;

2 数据结构之Cell

%% 2 数据结构之cell:类似矩阵,但可以存储异质而非数值型数据;用{}声明;B{1,1} = [1 2 3;4 6 9;2 6 8];
B{1,2} = 'chen qian';
B{2,1} = 100;
B{2,2} = 'male';
disp(B);% 索引出位置{1,1}处的矩阵
disp('B{1,1}为:')
disp(B{1,1});  % 用花括号% 索引出位置{1,1}处矩阵内第3行第3列的元素8
disp('B{1,1}(3,3)为:')
disp(B{1,1}(3,3));  % 先用花括号,再用圆括号

3 矩阵matrix到cell的转化

%% 3 矩阵matrix到cell的转化
% num2cell() 将矩阵每个元素分块
% mat2cell() 矩阵分块a = magic(6); % 生成一个6行6列的矩阵
disp('a的输出为:');
disp(a);b = num2cell(a);
disp('b的输出为:');
disp(b);c = mat2cell(a,[3 3],[4 2]); % 分块模式:前3行,后3行;前4列,后2列;
disp('c的输出为:');
disp(c)

4 三维数组的构建

%% 4 三维数组的构建
% 三维数组有3个方向,分别是:row;column;layer;对应参数分别为:1;2;3;
% 例如现有两个2行2列的cellA和B,欲将其拼接成一个2层的结构;可运用指令:cat(3,A,B)
% cat(3,A,B)中第一个参数表示拼接的方向,这里为3表示按前后方向拼接为双layer结构
% 其他1:cat(1,A,B)表示常见的横向拼接,等价于[A B]
% 其他2:cat(2,A,B)表示竖向拼接,等价于[A;B]A{1,1} = [1 1;2 2];
A{1,2} = 'chenqian';
A{2,1} = [98;92;87];
A{2,2} = 'male';
B{1,1} = [3 3;4 4];
B{1,2} = 'zhangsan';
B{2,1} = [60;59;63];
B{2,2} = 'female';C1 = cat(1,A,B);  % 横向拼接,等价于 C1 =[A B]
C2 = [A;B];       % 竖向拼接,等价于C2 =cat(2,A,B)
C3 = cat(3,A,B);

5 Mat、Txt数据的存储与读取

%% 5 mat,text数据的存储与读取
% 存储:save  '文件名.mat'
% 读取:load('文件名.mat')
clear;
a = magic(4);
save mydata1.mat % 存储为mat文件% 读取mat文件: load('mydata1.mat')

6 Excel数据的存储与读取

%% 6 Excel数据的存储与读取
% 存储(写入):xlswrite('文件名.xlsx',写入数据,sheet的编号,写入区域)
% 读取:xlsread('文件名.xlsx')  或 指定读取区域:xlsread('文件名.xlsx', 'B2:D4')% 读取数据
Score = xlsread('04Score');
% Score = xlsread('04Score','B2:D4' ); % 指定读取区域% 计算均值后写入数据
M = mean(Score')'; % 转置计算均值后,再转置回来
xlswrite('04Score.xlsx',M,1,'E2:E4'); % M为写入数据,1表示写入该Excel的sheet1,'E2:E4'表示写入区域
xlswrite('04Score.xlsx',{'Mean'},1,'E1');

(二)初阶绘图_P5

1 将多条曲线绘制于同一个坐标系中

% Bilibili 台大郭彦甫 P5
% 初阶绘图%% 1 将多条曲线绘制于同一个坐标系中% 第一种:用hold指令
hold on
plot(cos(0:pi/20:2*pi));
plot(sin(0:pi/20:2*pi));
hold off % 第二种:plot函数多参输入
x = 0:pi/20:2*pi;
plot(x,sin(x),x,cos(x));

2 更改图形外观

%% 2 更改图形外观;3要素:Marker,Line,Color
hold on
plot(cos(0:pi/20:2*pi),'ok--'); % o代表圆圈,k表示black,--表示段划线
plot(sin(0:pi/20:2*pi),'sr:');  % s代表方块,r表示red,:表示点划线
hold off

3 添加标题、添加图例、坐标轴名称、网格线等

%% 3 添加标题、添加图例、坐标轴名称、网格线等% 添加标题:title('str')
% 图例命令:legend('str1','str2','str3')
% 坐标轴标签:xlabel('str'),ylabel('str'),zlabel('str')
hold on
plot(cos(0:pi/20:2*pi),'ok--'); % o代表圆圈,k表示black,--表示段划线
plot(sin(0:pi/20:2*pi),'sr:');  % s代表方块,r表示red,:表示点划线
hold offtitle('Sin(x)与Cos(x)示意图');
xlabel('x的范围');
ylabel('y的取值');
legend('cos(x)','sin(x)');grid(); % 网格线

4 添加注释和箭头

%% 4 添加注释和箭头% 注释用text()结合LaTeX语法
% 箭头用annotation()% 画基础图形
x = linspace(0,3); % 均分计算
y = x.^2 .* sin(x); plot(x,y);
line([2,2],[0,2^2 .* sin(2)]); % 画一条竖线,[2,2]表示两个点的横坐标,其余同理% 添加注释和箭头
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$'; % 编写Latex语法
text(0.25,2.5,str,'Interpreter','latex');
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]); % 绘制箭头

5 图形外观进一步优化

%% 5 图形外观进一步优化
% 一、常见需要修改的特性主要有:
% Font
% Fontsize
% Line width
% Axes limit
% Tick position
% Tick label% 二、一张图形由很多object组成,他们之间存在parent与child的隶属关系,如以下几种层级关系
% Figure object% Axes object% Line object% Marker% MarkerSize% MarkerEdgeColor% MarkerFaceColor% Color% LineStyle% LineWidth
% 于是如果要获取或修改某项object的特性,操作策略如下:
% 1)首先辨识出该object的handle(ID)
%   gcf: get current figure's handle
%   gca: get current axes' handle
%   而线条line的handel,不需要用呼叫函数,其被赋值的变量即为其handle(ID)...
%   如下文的 h = plot(x,y),h即为绘制出曲线的handle
% 2)得到handle后,根据需要,获取或修改其特性
%   get():获取object的特性
%   set():修改object的特性% 代码示例
x = linspace(0,2*pi,10);
y = sin(x);
h = plot(x,y,'vr-.'); % h即为曲线Line的handle% 修改某项object的特性,这里为修改axes limits
set(gca,'xlim',[0,2*pi]); % gca为:get current axes' handle
set(gca,'ylim',[-1.2,1.2]);% 坐标轴Axes设置:Fontsize、Tick、TickLable
set(gca,'FontSize',15); % 修改坐标轴字体大小
set(gca,'Xtick',0:pi/2:2*pi); % Tick是刻度线的绘制情况
set(gca,'Xticklabel',0:90:360);% 曲线Line设置:LineStyle、LineWidth、Color
set(h,'LineStyle',':','LineWidth',1.5,'Color','b') % 其中,h是曲线的handle(ID)

6 将多条曲线绘制于多张_figure_window

%% 6 将多条曲线绘制于多张_figure_window_中的方法% 通过呼叫figure语句来实现功能
x = -10:0.1:10;
y1 = x.^2 - 8;
y2 = exp(x);
figure,plot(x,y1);
figure,plot(x,y2);%% 7 将多条曲线绘制于同一张_figure_window_中的方法(排列式绘制)% subplot(m,n,1),m为整个figure划分为m*n个格子,1表示将图形画在第一行第一列处x = 0:0.1:10;
y1 = x.^2 - 8;
y2 = exp(x);
y3 = 2*x.^2;
y4 = 1./x;
subplot(2,2,1),plot(x,y1);
subplot(2,2,2),plot(x,y2);
subplot(2,2,3),plot(x,y3);
subplot(2,2,4),plot(x,y4);

Matlab笔记_郭彦甫相关推荐

  1. FVM in CFD 学习笔记_第9章_梯度计算

    学习自F. Moukalled, L. Mangani, M. Darwish所著The Finite Volume Method in Computational Fluid Dynamics - ...

  2. 关于幂律分布的一个笔记_哈克_新浪博客

    关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记     (2011-03-02 18:12:27)     转载▼     标签:     幂律     二八法则     杂谈     ...

  3. Effective C++笔记_条款31将文件间的编译依存关系降至最低

    Effective C++笔记_条款31将文件间的编译依存关系降至最低 这个章节,读了两遍还是不是很清楚,有一种没法和作者沟通的感觉,看来我还是一个C++的初学者呀.好吧,不多说了,回归主题,今天的笔 ...

  4. matlab的diray在哪,matlab笔记

    matlab笔记 目录 P5第一章--matlab 概述与格式 P10eps 浮点相对精度inf 无穷大i 或 j 虚数单位pi 圆周率nan 非数nargin 函数输入变量数目nargout 函数输 ...

  5. oracle11g中用asmlib配置磁盘组,ASM学习笔记_配置ASMLIB磁盘组

    ASM学习笔记_配置ASMLIB磁盘组 目录 1 ASMLIB Introduction 2 虚拟机添加一个共享磁盘(块设备) 3 下载,安装ASMLIB 4 配置,使用ASMLib 磁盘组 #### ...

  6. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  7. matlab exe mingw,matlab笔记:安装MinGW编译器

    因为目标追踪领域最著名的比赛VOT(Visual Object Tracking),同时也拥有一个非常重要的数据集和一套比较权威的评价指标,基于的是matlab,因此我又开始用起了matlab(这么看 ...

  8. 系统架构师学习笔记_第六章(下)_连载

    系统架构师学习笔记_第六章(下)_连载 6.3 基于 UML 的软件开发过程 6.3.1  开发过程概述 UML 是独立于软件开发过程的,能够在几乎任何一种软件开发过程中使用.迭代的渐进式软件开发过程 ...

  9. MATLAB笔记之复数以及基本复数函数二维视角(2d)图形绘制

    MATLAB笔记之复数以及基本复数函数二维视角(2d)图形绘制 QQ:3020889729 小蔡 一般复数的2d图形绘制 一般复数的平移图形~(即一个复数加另一个复数实现在复平面的平移) 补充几个复数 ...

最新文章

  1. C语言函数大全(a开头)
  2. php无法完成文件上传,php – Fine Uploader无法上传文件
  3. 空类-自动生成的函数
  4. 侵犯著作权法定赔偿额上限提高至500万元
  5. a标签的href传递信息
  6. 2021新乡市铁一中高考成绩查询,2021铁一中中考录取分数线预测
  7. android图片加水印,文字
  8. 代码管理学:通过文档记录,实现工作传承
  9. 《C专家编程》学习笔记(对链接的思考)
  10. WTG--让我们随时随地封装系统!
  11. java项目集成J2Cache(一级缓存ehCache,二级缓存redis)
  12. iOS之healthKit
  13. mysql免安装迁移_Mysql 免安装配置并迁移数据库
  14. 《编译原理》画 DAG 图与求优化后的 4 元式代码- 例题解析
  15. Windows 搭建Syslog、RSyslog日志服务器
  16. 抖音OAuth2.0快速登录源码
  17. VirtualBox如何添加ISO文件
  18. HIVE如何进行随机抽样
  19. dell笔记本外接显示器_戴尔笔记本怎么连接外接显示器?
  20. ruoyi-vue集成积木报表

热门文章

  1. onkeydown基本用法
  2. EOS的侧链技术亮点是什么?
  3. 《Java Web程序设计基础教程》简介
  4. 如何阅读AI顶会论文?
  5. atoi()函数用法
  6. JS中解决单击双击事件的冲突的问题
  7. IntelliJ IDEA中JAVA连接MySQL数据库
  8. 《小强升职记》作者谈“怎样达成目标”
  9. [地图]构建欧氏距离场
  10. (一)分布式存储综述