MATLAB使用教程(二)——在文件中编程——新手来看
·前言
在上一篇文章中,我们学习了
- 如何调整自己的工作区
- 使用matlab时的注意事项,比如不能按CTRL+Q
- 语句后面加分号,不是交互式,不加分号,会同时打印结果,即交互式。
- 字符串使用单引号才可以。
- 变量赋值不需要提前声明,随时使用。
- clear清除变量,clc清除屏幕。
- who和whos查看我们已经拥有的变量的各项树形。
- 类型强制转换。
·本讲准备
把matlab编码调整为utf-8编码
首先,删除这个部分(一定先备份这个lcdata.xml文件,备份就是拷贝一个副本),我的是2016版,大概在这里,你们可以搜索以下:
然后,找到这个部分,增加一行:
最后,重启matlab软件,即可把编码更改为utf-8编码。
·本讲开始
在别的语言中,都能使用文件写代码,然后使用解释器运行或者使用编译器编译运行,比如 .c .cpp .py .go等,matlab也是一门语言,也可以使用文件来编程,在matlab中使用文件编程有以下注意事项:
- 后缀名是 .m
- 注释符号是 %
- 建议在所有语句后面加分号(;),否则运行时会当作交互式命令输出结果,从而掩盖我们的重要信息。
- 文件名仅包含字母、下划线、数字且不能以数字开头。
- 编写文件前检查自己是否在工作目录
编写文件时,我们可以选择使用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运行程序时要有以下注意事项:
- 文件名只能包含数字、下划线、字母且只能以字母开头。
- 文件要包含在工作目录内,即使用ls命令能看到,如下图
- 输入文件名然后回车直接运行程序,如图
下面是上面代码的运行结果:
可以看到运行出了结果,至于行尾加不加分号,凭个人喜好,但是我这里有两点建议:
- 调试程序时,最好不要加分号,这样可以看到每一步的运行结果和自己的想法是否符合。
- 实际运行程序时,加分号,防止交互式输出影响我们的结果观测。
·知识点小结
今天我们学习了如下知识:
- 如何在matlab中显示一句话(使用disp函数)
- 怎么格式化一个字符串(使用sprintf函数)
- 如何在文件中编写matlab代码(包括使用注释)
- 如何调整matlab中的字符编码为utf-8
- 编写.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使用教程(二)——在文件中编程——新手来看相关推荐
- MATLAB使用教程(三)——在文件中编程
1.把matlab编码调整为utf-8编码 首先,删除这个部分(一定先备份这个lcdata.xml文件,备份就是拷贝一个副本),我的是2016版,大概在这里,你们可以搜索以下: 然后,找到这个部分,增 ...
- JPEG系列二 JPEG文件中的EXIF(上)
JPEG图片中的EXIF信息遵循TIFF格式标准,因此EXIF分为上下两篇. 上篇介绍一下TIFF文件格式,下篇介绍EXIF在JPEG中的作用和存储的信息. TIFF文件格式简介 TIFF - Tag ...
- GIS开源库GEOS库学习教程(二):geos中的几何图形(Geometry)
前言 上一节我们学过了GEOS库的介绍和环境编译及示例代码,在这一节我们将了解一下geos中的各种几何图形类,它们大部分都是从Geometry类派生的.而几何图形(Geometry)是geos里面 ...
- Vim教程2 在文件中的移动
基于开源的Vim学习教程learn-vim 1. 字符导航 在Vim中最基本的移动单元是上下左右移动一个字符. h 左 j 下 k 上 l 右 当然也可以通过键盘的方向键进行移动. 为什么Vim用这几 ...
- MATLAB将数据存在TXT文件中
%%记录结果,将数据保存到txt文件中 fid = fopen('结果记录.txt','a'); %结果记录.txt是存储数据的文件,a是数据向后增加的意思 fprintf(fid,'%f\t',hz ...
- matlab找出二维矩阵中最大值的位置或者最小值的位置
matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...
- JPEG系列二 JPEG文件中的EXIF(下)
https://blog.csdn.net/shelldon/article/details/54407534 EXIF格式介绍(下) JPEG图片中的EXIF信息是以TIFF格式保存的,关于TIFF ...
- MATLAB找出二维数组中最接近某个数的n个数
clear;clc; % 找出数组A中最接近b的n个数,一维二维通用 A=round(100*rand(10)); % 要找的数组 AA=A(:); b=20; % 要接近的数 n=20; % 要找的 ...
- JPEG系列二 JPEG文件中的EXIF(下)
EXIF格式介绍(下) JPEG图片中的EXIF信息是以TIFF格式保存的,关于TIFF格式的介绍,可以参考上篇. 下篇中将介绍EXIF中都保存了哪些数据,这些数据的内容和格式,最后介绍一下EXIF中 ...
最新文章
- C语言再学习 -- 关键字void
- python echo命令_如何用Python调用外部命令
- 杂谈(7)努力就有收获
- 算法:动态规划解决爬楼梯Climbing Stairs python3
- 使用LibreOffice的Draw取代Microsoft visio
- 只读更新全程图解教程(转)
- 营收环比增幅近50%,星巴克在经历“劫”后重生吗?
- dw怎么保存html格式,教你如何用Dreamweaver制作网页以及保存网页的方法--系统之家...
- 2020软科中国计算机学科排名,【智库数据】基于2020软科中国最好学科排名的学科动态发展跟踪...
- python opencv将图片转为灰度图
- 纷享自定义函数:客户回填工商信息(天眼查)
- 一个程序员如何给LPL发弹幕加油
- Xilinx FPGA时钟及I/O接口规划(二)
- ansys添加力矩_Ansys加力矩.doc
- 西门子服务器装系统,IPC427D重新安装系统
- 深度优先搜索(DFS) -全排列
- isInterrupted、interrupt和interrupted
- JavaScript之构造函数 Constructor
- ORC 2V2 详细心得
- harbor机器人账户使用
热门文章
- java onmessage监听消息队列_消息队列(MQ)功能场景
- jquery如何设置占位隐藏_css如何隐藏元素不占位?
- Wujian100 SOC FPGA原型验证,bootrom的实现
- uni-app 使用高德地图部分内容
- 关于VScode中使用printf 输出中文乱码的问题经验分享
- 用python控制手机电脑拍照自动发送邮箱
- Linux一切皆文件
- 22年春福师《大学英语(2)》在线作业一-6
- FFmpeg音视频开发实战5 iOS/Android/windows/Linux -陈超-专题视频课程
- 【NTLM】NTLM协议 与挑战-鉴权协议