·前言

在上一篇文章中,我们学习了

  1. 如何调整自己的工作区
  2. 使用matlab时的注意事项,比如不能按CTRL+Q
  3. 语句后面加分号,不是交互式,不加分号,会同时打印结果,即交互式。
  4. 字符串使用单引号才可以。
  5. 变量赋值不需要提前声明,随时使用。
  6. clear清除变量,clc清除屏幕。
  7. who和whos查看我们已经拥有的变量的各项树形。
  8. 类型强制转换。

·本讲准备

把matlab编码调整为utf-8编码

首先,删除这个部分(一定先备份这个lcdata.xml文件,备份就是拷贝一个副本),我的是2016版,大概在这里,你们可以搜索以下:

然后,找到这个部分,增加一行:

最后,重启matlab软件,即可把编码更改为utf-8编码。

·本讲开始

在别的语言中,都能使用文件写代码,然后使用解释器运行或者使用编译器编译运行,比如 .c .cpp .py .go等,matlab也是一门语言,也可以使用文件来编程,在matlab中使用文件编程有以下注意事项:

  1. 后缀名是 .m
  2. 注释符号是 %
  3. 建议在所有语句后面加分号(;),否则运行时会当作交互式命令输出结果,从而掩盖我们的重要信息。
  4. 文件名仅包含字母、下划线、数字且不能以数字开头。
  5. 编写文件前检查自己是否在工作目录

编写文件时,我们可以选择使用matlab本身的编辑文档编写,也可以选择自己的喜爱的编辑器比如vim,如下图所示:

如果使用edit后面没有加文件名,情况如下图所示:

当我们没有键入文件名字,需要按下保存键去保存。

·开始编程

下面以m01_hello.m文件为例,首先打开文件写入如下代码(建议选择matlab本身编辑,有自动补全。当然也可以使用别的编辑器)

% 这里是注释行,这个文件演示如何使用文件编辑代码
disp('首先演示后面都加了分号的代码');
age = 20;
name = 'chuckiezhu';
sentence = '你好啊!';
print_str = sprintf('%s年龄是%d.他说:"%s"\n', name, age, sentence);
% sprintf是格式化字符串的函数,返回一个格式化后的字符串
disp(print_str);  % 显示目标字符串
disp('---------------分割线---------------------')
disp('然后演示后面都不加分号的代码')
age = 20
name = 'chuckiezhu'
sentence = '你好啊!'
print_str = sprintf('%s年龄是%d.他说:"%s"\n', name, age, sentence)
% sprintf是格式化字符串的函数,返回一个格式化后的字符串
disp(print_str)  % 显示目标字符串

·运行程序

matlab运行程序时要有以下注意事项:

  1. 文件名只能包含数字、下划线、字母且只能以字母开头。
  2. 文件要包含在工作目录内,即使用ls命令能看到,如下图
  3. 输入文件名然后回车直接运行程序,如图

下面是上面代码的运行结果:

可以看到运行出了结果,至于行尾加不加分号,凭个人喜好,但是我这里有两点建议:

  1. 调试程序时,最好不要加分号,这样可以看到每一步的运行结果和自己的想法是否符合。
  2. 实际运行程序时,加分号,防止交互式输出影响我们的结果观测。

·知识点小结

今天我们学习了如下知识:

  1. 如何在matlab中显示一句话(使用disp函数)
  2. 怎么格式化一个字符串(使用sprintf函数)
  3. 如何在文件中编写matlab代码(包括使用注释)
  4. 如何调整matlab中的字符编码为utf-8
  5. 编写.m文件时,行尾的分号什么时候使用效果最佳

·文末彩蛋

表白神器,代码如下:

[x,y,z]=meshgrid(linspace(-1.3,1.3));
val=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9/80)*y.^2.*z.^3;
isosurface(x,y,z,val,0)
axis equal
view(-10,24)
colormap flag
camlight
lighting phong

运行效果如图:

下期再见!

----------------------------------------------2020年6月6日更新

关于代码中第六行sprintf的用法:

先给各位道歉,我以为你们都有C语言的基础,以后我会注意这些问题。

sprintf函数的使用,现在的阶段我们可以理解为这样(如果以后需要用到更高级的用法再讲,一切实用为主):

sprintf(p1[, p2 ...]);

这里的p1是必需的,代表我们的原来的、未经处理的字符串。方括号内是可选的,用于添加参数,比如文章中的代码:

sprintf('%s年龄是%d.他说:"%s"\n', name, age, sentence);

%s %d 是“占位符”,就是说占着这个位置,然后用后面的多余的参数来填。

%s占一个字符串的位置,%d占一个整数的位置.

\n则是一个换行,类似的有\t(一个制表符位),\r (回车)等。

sprintf返回一个字符串,就是结果字符串。

disp则是将某个字符串显示到终端中。

MATLAB使用教程(二)——在文件中编程——新手来看相关推荐

  1. MATLAB使用教程(三)——在文件中编程

    1.把matlab编码调整为utf-8编码 首先,删除这个部分(一定先备份这个lcdata.xml文件,备份就是拷贝一个副本),我的是2016版,大概在这里,你们可以搜索以下: 然后,找到这个部分,增 ...

  2. JPEG系列二 JPEG文件中的EXIF(上)

    JPEG图片中的EXIF信息遵循TIFF格式标准,因此EXIF分为上下两篇. 上篇介绍一下TIFF文件格式,下篇介绍EXIF在JPEG中的作用和存储的信息. TIFF文件格式简介 TIFF - Tag ...

  3. GIS开源库GEOS库学习教程(二):geos中的几何图形(Geometry)

    前言   上一节我们学过了GEOS库的介绍和环境编译及示例代码,在这一节我们将了解一下geos中的各种几何图形类,它们大部分都是从Geometry类派生的.而几何图形(Geometry)是geos里面 ...

  4. Vim教程2 在文件中的移动

    基于开源的Vim学习教程learn-vim 1. 字符导航 在Vim中最基本的移动单元是上下左右移动一个字符. h 左 j 下 k 上 l 右 当然也可以通过键盘的方向键进行移动. 为什么Vim用这几 ...

  5. MATLAB将数据存在TXT文件中

    %%记录结果,将数据保存到txt文件中 fid = fopen('结果记录.txt','a'); %结果记录.txt是存储数据的文件,a是数据向后增加的意思 fprintf(fid,'%f\t',hz ...

  6. matlab找出二维矩阵中最大值的位置或者最小值的位置

    matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...

  7. JPEG系列二 JPEG文件中的EXIF(下)

    https://blog.csdn.net/shelldon/article/details/54407534 EXIF格式介绍(下) JPEG图片中的EXIF信息是以TIFF格式保存的,关于TIFF ...

  8. MATLAB找出二维数组中最接近某个数的n个数

    clear;clc; % 找出数组A中最接近b的n个数,一维二维通用 A=round(100*rand(10)); % 要找的数组 AA=A(:); b=20; % 要接近的数 n=20; % 要找的 ...

  9. JPEG系列二 JPEG文件中的EXIF(下)

    EXIF格式介绍(下) JPEG图片中的EXIF信息是以TIFF格式保存的,关于TIFF格式的介绍,可以参考上篇. 下篇中将介绍EXIF中都保存了哪些数据,这些数据的内容和格式,最后介绍一下EXIF中 ...

最新文章

  1. C语言再学习 -- 关键字void
  2. python echo命令_如何用Python调用外部命令
  3. 杂谈(7)努力就有收获
  4. 算法:动态规划解决爬楼梯Climbing Stairs python3
  5. 使用LibreOffice的Draw取代Microsoft visio
  6. 只读更新全程图解教程(转)
  7. 营收环比增幅近50%,星巴克在经历“劫”后重生吗?
  8. dw怎么保存html格式,教你如何用Dreamweaver制作网页以及保存网页的方法--系统之家...
  9. 2020软科中国计算机学科排名,【智库数据】基于2020软科中国最好学科排名的学科动态发展跟踪...
  10. python opencv将图片转为灰度图
  11. 纷享自定义函数:客户回填工商信息(天眼查)
  12. 一个程序员如何给LPL发弹幕加油
  13. Xilinx FPGA时钟及I/O接口规划(二)
  14. ansys添加力矩_Ansys加力矩.doc
  15. 西门子服务器装系统,IPC427D重新安装系统
  16. 深度优先搜索(DFS) -全排列
  17. isInterrupted、interrupt和interrupted
  18. JavaScript之构造函数 Constructor
  19. ORC 2V2 详细心得
  20. harbor机器人账户使用

热门文章

  1. java onmessage监听消息队列_消息队列(MQ)功能场景
  2. jquery如何设置占位隐藏_css如何隐藏元素不占位?
  3. Wujian100 SOC FPGA原型验证,bootrom的实现
  4. uni-app 使用高德地图部分内容
  5. 关于VScode中使用printf 输出中文乱码的问题经验分享
  6. 用python控制手机电脑拍照自动发送邮箱
  7. Linux一切皆文件
  8. 22年春福师《大学英语(2)》在线作业一-6
  9. FFmpeg音视频开发实战5 iOS/Android/windows/Linux -陈超-专题视频课程
  10. 【NTLM】NTLM协议 与挑战-鉴权协议