先写一些,积累多点再来补充~

一   输入

1.input

input 的应用形式主要有以下两种,其中第一个输入的数字,第二个输入的是文本信息(一般为字符串)

x = input(prompt)str = input(prompt,'s')

式中,prompt 代表要展示的文本信息,例如 a=input('please input a number\n') ,会在命令行上显示 please input a number ,此时可以手动输入一个数字(若输入其他格式例如字符会报错)。这是程序不会继续运行,而是等待输入数字后回车方可继续运行,文本输入同理。详见MATLAB中的input函数。

2.其它输入

输入数据也可以是导入和读取文件数据,MATLAB支持的数据格式多种多样,常见的主要有txt格式、xml格式等,再次仅对少数函数进行介绍,若想了解更多可以参考MATLAB数据导入与分析中的关于文本、表格、图像等格式文件的导入函数,本文主要介绍函数调用形式的输入输出。

2.1  fscanf

首先,使用 fscanf 函数读取的文件格式为文本格式,应用到的三种形式如下:

A = fscanf(fileID,formatSpec) 将打开的文本文件中的数据读取到列向量 A 中,并根据formatSpec 指定的格式解释文件中的值。fscanf 函数在整个文件中重新应用该格式,并将文件指针定位在文件结尾标记处。如果 fscanf 无法将 formatSpec 与数据相匹配,将只读取匹配的部分并停止处理。fileID(文件标识符)可以使用fileID = fopen('x.txt','a'); 的方式打开文件得到。formatSpec为数据段部分格式。

A = fscanf(fileID,formatSpec,sizeA) 将文件数据读取到维度为 sizeA 的数组 A 中,并将文件指针定位到最后读取的值之后。fscanf 按列顺序填充 AsizeA 必须为正整数或采用 [m n] 的形式,其中 m 和 n 为正整数(也可以是Inf  正无穷,表示读取对应的所有行/列/整块数据)。

[A,count] = fscanf(___) 还将返回 fscanf 读取到 A 中的字段数。对于数值数据,这是已读取的值数。您可以将此语法与前面语法中的任何输入参数结合使用。

然而,一般我是不用这个的。

2.2 load

load是MATLAB中最为常见的一种文件读取函数了,主要形式有以下五种:

load(filename)

load(filename,variables)

load(filename,'-ascii')

load(filename,'-mat')

load(filename,'-mat',variables)

可以是直接加载,形如 data=load('D:/test.txt'); 或者 data=load('D:/test.txt','x')读取 test.txt 中的x变量,其中x也可替换为多个变量组成的元胞数组,例如将x替换为var{:},其中var={'x','y','z'};除了 txt文本文件,还可以是MATLAB的数据类型mat格式文件(会直接输出到工作区中),ascii文件格式如第三个式子所示,会创建一个包含该文件数据的双精度数组。

通过load方式加载的数据尤为常见,在许多MATLAB的扩展函数中都可以见到,加载的格式也算是非常丰富的,文本文件,数据库文件或是表格文件都可以。

2.3 fopen

fopen 是打开文件,在下面fprintf函数中又对其各种格式的详细说明。通过fopen打开文件后,可以使用文本文件或字符串读取函数 testscan 来读取文件,调用格式如下:

fileID=fopen(filename);

C=testscan(fileID,formatSpec);

fclose(fileID);

打开文件后,testscan会尝试将文件中的数据与formatSpec中的转换设定符匹配。testscan函数在整个文件中按 formatSpec重复扫描数据,直至 formatSpec 找不到匹配的数据时才停止。

另外,也可以参考以下这种做法,将数据处理成元胞数组再转化为字符数组,运行结果如下

fileID = fopen('D:/test.txt','r');
rowdata = textscan(fileID, '%s', 'DElimiter', '\n');% 获得每行数据
fclose(fileID);
whos rowdata
rowdata{1}
%rowdata{2},会报错,rowdata为{1,1}元胞数组
a=rowdata{1,1}
whos a
b1=a{1,1}
whos b1

至于转换后的字符数组要怎么处理便是自己的事情了,这是相对于复杂输入类型的读取方式,更详细部分可以参考textscan。输入还是以 load 加载为主。


二   输出

常见的输出形式主要有三种:

1.直接输出到命令行

MATLAB允许在脚本(M文件)或者命令行上直接输入变量名即可输出,这种方法应用起来较为简单方便,适合测试时使用。但一般输出时时按照系统默认格式进行输出,若要调整需要在程序前通过 format 修改命令行输出格式,例如 format long 设置命令行输出格式为固定十进制长格式,同理可以设置为 short 短格式,更多的数值格式见下表所示(这些在MATLAB文档中都可以找到~format详解)

数值格式

这些样式可控制数值变量的输出显示格式。

Style

结果

示例

short (default)

固定十进制短格式,小数点后包含 4 位数。

3.1416

long

长固定小数格式,double 值的小数点后包含 15 位数,single 值的小数点后包含 7 位数。

3.141592653589793

shortE

短科学记数法,小数点后包含 4 位数。

3.1416e+00

longE

长科学记数法,double 值的小数点后包含 15 位数,single 值的小数点后包含 7 位数。

3.141592653589793e+00

shortG

短固定小数格式或科学记数法(取更紧凑的一个),总共 5 位。

3.1416

longG

长固定小数格式或科学记数法(取更紧凑的一个),对于 double 值,总共 15 位;对于 single 值,总共 7 位。

3.14159265358979

shortEng

短工程记数法,小数点后包含 4 位数,指数为 3 的倍数。

3.1416e+000

longEng

长工程记数法,包含 15 位有效位数,指数为 3 的倍数。

3.14159265358979e+000

+

正/负格式,对正、负和零元素分别显示 +- 和空白字符。

+

bank

货币格式,小数点后包含 2 位数。

3.14

hex

二进制双精度数字的十六进制表示形式。

400921fb54442d18

rat

小整数的比率。

355/113

除此,也可以设置矩阵输出时的行距格式:

Style

结果

示例

compact

隐藏过多的空白行以便在一个屏幕上显示更多输出。

theta = pi/2
theta =
  1.5708

loose

添加空白行以使输出更易于阅读。

theta = pi/2

theta =

1.5708

2 fprintf函数输出

fprintf函数是MATLAB函数中较为常见的一种(详见fprintf函数),因为它可以设置输出格式,较为灵活全面。最为常见的一种形式为: fprintf('%s is a boy',boyname) ,其中 boyname 表示一个存储字符串的变量名,同理这种形式可以输出十进制数(%d)、八进制数(%o)、定点记数法的浮点数(%f)以及指数记数法的浮点数(%e),单个字符(%c)和字符串(%s)。

如是需要控制输出的长度,可以在百分号后加上数字,例如 %8s 输出长度为八(若实际字符串长度超过八会输出字符串原身,不会截断),在命令行上至少保持8个占位,不够用空格来补,而 %4.8f 则会输出4位整数加小数点加8位小数的数字格式,与字符串不同的时,整数不够用空格补,小数不够用 0 来补。

前面所提的案例输出格式遵循右对齐的格式,若想变成左对齐则在百分号后数字或格式前加一个负号即可,例如 %-8s 。除此,我们还可以通过一些特殊的控制字符来维持输出格式的美观,例如 \t (水平)制表符,\n 换行符,\v 垂直制表符。

除此,fprintf函数还可以将数据输出到文件中存储起来,在MATLAB脚本中操作,格式案例如下:

x = 0:.1:1;
A = [x; exp(x)];fileID = fopen('exp.txt','w');
fprintf(fileID,'%6s %12s\n','x','exp(x)');
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);

在输出前首先需要打开文件(fopen),输出结束后需要关闭文件(fclose),如上所示。其中,fopen函数里的是文件名以及标识符,标识符类别有以下8种,若是要创建新文件则是 w ,若是在原有文件里补充则是 a ,一般用到的就这两种。

'r'

打开要读取的文件。

'w'

打开或创建要写入的新文件。放弃现有内容(如果有)。

'a'

打开或创建要写入的新文件。追加数据到文件末尾。

'r+'

打开要读写的文件。

'w+'

打开或创建要读写的新文件。放弃现有内容(如果有)。

'a+'

打开或创建要读写的新文件。追加数据到文件末尾。

'A'

打开文件以追加(但不自动刷新)当前输出缓冲区。

'W'

打开文件以写入(但不自动刷新)当前输出缓冲区。

fclose 关闭文件,括号里面的fileID是文件标识符,即代表打开的文件,无特殊情况该语句也可以用 fclose('all') 关闭所有文件代替。而fprintf与前面输出到命令行的格式大致相似,不过在最前面加上了一个fileID~文件标识符而已。

3.disp

disp函数是直接输出,打印变量值或者打印字符串,形如 disp(x)和disp('x')表达的意思是不同的,前者是输出 x 的值,可以是字符串、整数、矩阵等等,而后者则是直接打印字符串 x ,打印完会直接换行,不像fprintf函数需要输入 \n 换行。同时,需要注意的是 disp 若是要在一行i打印字符串和变量值不能直接写成这种形式: disp('a is',a_value),这样会出现输入参数过多的错误(而在C#语言中使用$可以做到类似操作),但是可以写成类如以下形式来输出:

name = 'Alice';
age = 12;
X = [name,' will be ',num2str(age),' this year.'];
disp(X)

这样会在一行里输出 :Alice will be 12 this year.

大致的输入输出操作就到这儿了,更多内容还需继续进修~一般来说这些输入输出就足够了

(一)MATLAB中的输入与输出相关推荐

  1. matlab 对话框保持,如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?)...

    如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?) 我想在matlab中创建输入对话框. 我在MATLAB中执行简单的加法运算. ...

  2. python输入程序_Python 程序设计中的输入与输出介绍

    关于Python 编程语言中的输入输出,其实我们在前两几节中已经接触过了.这节我们将具体的介绍一下Python中的输入与输出.什么是输入输出呢? 用户告诉计算机程序所需的信息,就是输入:程序运行结束告 ...

  3. xml文件 卷积神经网络_理解卷积神经网络中的输入与输出形状(Keras实现)

    即使我们从理论上理解了卷积神经网络,在实际进行将数据拟合到网络时,很多人仍然对其网络的输入和输出形状(shape)感到困惑.本文章将帮助你理解卷积神经网络的输入和输出形状. 让我们看看一个例子.CNN ...

  4. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  5. python输入什么就输出什么意思_python中的输入与输出是什么?(实例详解)

    对于第一次接触到python这门编程语言的朋友来说,刚刚开始学习python编程的时候对于python中的输入与输出这一方面的了解比较少,在这篇文章之中我们就来了解一下python输入与输出的相关知识 ...

  6. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  7. matlab程序特殊符号,matlab中怎么输入特殊符号

    matlab中怎么输入特殊符号: word文档中怎么插入心形特殊符号?,缺失:matlab中怎么输入特殊符号12628/11 以下是的一些我们精选的word文档中怎么插入心形特殊符号? word文档中 ...

  8. 在 Matlab 中如何输入希腊字母等特殊字符

    在 Matlab 中希望输入希腊字母等特殊字符用 \ 加拼音 如下表: α \alpha β \beta γ \gamma θ \theta Θ \Theta Г \Gamma δ \delta Δ ...

  9. 在MATLAB中使用数学符号,在matlab中怎么输入特殊符号 function在MATLAB中怎么用

    导航:网站首页 > 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 在matlab中怎么输入特殊符号 function在MATLAB中怎么用 相关问题: 匿名网友: 一 ...

  10. matlab中的下划线怎么打,在matlab中怎么输入特殊符号~ , 怎么在Matlab中输入特殊符号...

    导航:网站首页 > 在matlab中怎么输入特殊符号~ , 怎么在Matlab中输入特殊符号 在matlab中怎么输入特殊符号~ , 怎么在Matlab中输入特殊符号 匿名网友: 一.文档中的T ...

最新文章

  1. docker 安装MongoDB以及设置用户
  2. java-mybatis环境搭建
  3. 小米平板android版本,除了安卓MIUI7,小米平板2为什么要推出Win10版?
  4. 字符编码在python中的处理与储存_python----字符编码与文件处理
  5. 【AI学院】有三AI博士小姐姐带你学深度学习之图像识别下篇,附上篇回顾
  6. 最后一天,最后一刻。。。。。。情理之中,意料之外。。。。。。
  7. PCB上走100A电流的方法
  8. jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用...
  9. 利用永恒之蓝入侵服务器复制文件,msf利用永恒之蓝进行漏洞攻击
  10. 并行编译 Xoreax IncrediBuild
  11. 网页设计心得HTML心得体会3000,网页制作的心得体会
  12. 用程序C语言设计名片,C语言程序设计求职简历模板
  13. Docker教程精要版
  14. word 文档规范,比如标题、正文的字号
  15. 阿里巴巴java开发手册-嵩山版 下载
  16. win10系统服务器管理器,win10服务管理器,详细教您Win10服务管理器怎样打开
  17. 优秀的管理者如何带好团队(这几个技巧你是否学会)
  18. thrift0.8.0支持win7的方法
  19. android wear 制作时钟界面,android wear开发之绘制表盘.doc
  20. ArcBlock 将作证支持美国华盛顿州区块链立法 | ABT 活动

热门文章

  1. JavaSE基础Day01
  2. lsp语言服务器,身为程序员还不知道?Xtext与LSP让一个语言服务器横扫多个IDE!-lsp文件...
  3. Multisim14.0安装教程
  4. 百度网盘卸载后,无法重新安装,说电脑中文件没有删除干净
  5. [4G+5G专题-145]: 一体化小基站- 5G小基站软件建议架构概述
  6. ORAN专题系列-5:5G O-RAN 一体式小基站硬件白盒化的参考架构
  7. SIFT算法流程介绍
  8. [Campus]我的大学
  9. 国家信息安全漏洞库最新动态发布,墨云科技成为CNNVD技术支撑单位
  10. 兄弟,学点AI吗?2知识的确定性系统