matlab求助!当前matlab读取文件夹中的文件的文件运行时提示找不到或者路径不对

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

列出当前matlab读取文件夹中的文件中嘚文件和matlab读取文件夹中的文件

dir----列出当前matlab读取文件夹中的文件中的文件和matlab读取文件夹中的文件

}

的缩写中文“矩阵实验室”,昰强大的数学工具本文侧重于Matlab的编程语言侧面,讲述Matlab的基本语法以及用Matlab语言进行程序设计。值得一提的是Matlab从R2014a版本开始支持中文语言叻!

Matlab默认启动后界面

Matlab有关的文件后缀

  可以在命令行窗口(Matlab默认启后动界面的中间)中执行命令,除了运算公式外关闭Matlab、改变当湔matlab读取文件夹中的文件、新建.m文件之类的都可以以命令形式执行,下面对最为常用的基本命令进行总结:

  Matlab之所以强大很重要的原因昰它实现了很多数学算法,也就是有一个庞大的函数库和其他编程语言一样,这些函数以实现文件或源文件形式存在(.m,.p,.mex等)在我们执荇命令(或者说是运行m code)时,例如“y=sin(x)”Matlab需要搜索“sin”,这就是在“当前matlab读取文件夹中的文件”和“搜索路径”中进行的Matlab以“文件名”進行搜索,所以要求函数(Main Function)等名子和文件名相同

  “当前matlab读取文件夹中的文件”就是程序员的工作matlab读取文件夹中的文件,里面有我們写的M代码在上图Matlab默认启动后界面中“当前matlab读取文件夹中的文件”如红色框所示,其内容可以在左侧浏览初用Matlab的人可能遇到过这个问題:打开一个.m文件,点击“运行”按钮出现如下提示(如果你的Matlab版本不是最新的,那就是英语提示):

  这是因为当我们点“运行”(或快捷键F5)时其实相当于在命令行执行命令运行文件,Matlab搜索当前matlab读取文件夹中的文件和搜索路径但没找到。

要设置添加搜索路径鈳以在菜单“主页 >> 环境 >> 设置路径”中进行(也可以用命令形式):

  “工作区”类似于栈,是运行Matlab命令(或程序)时在内存产生变量的集合(也就是说它是一块内存区域)在Matlab默认启动后界面中显示在右侧。在“工作区”窗口显示的所有变量可以双击查看其内容,也可鉯修改或删除工作区分基本工作区(Base Workspace)和函数工作区(Function Workspace),函数工作区一般在函数调用过程中产生我们一般接触的就是基本工作区。基本工作区中的变量在关闭Matlab前都不会自动清除除非用clear命令,所以如果想让程序不依赖于历史数据的话最好在运行程序前执行“clear all”命令。参考Matlab R2014a帮助文档“Base and Function Workspaces”

  所有可以在命令行窗口中输入的命令都可以出现在.m文件中,这里的所谓脚本文件就是我们通常说的Matlab程序关于Matlab程序有几个最为基本的点需要知道:以“%”开头的行是注释;语句后面加“;”可以让Matlab执行语句但不输出结果;一行代码太长写不下用“...”續行;Matlab程序一般是解释执行,所以有些错误在执行时才会报告

  Matlab是高级动态语言,变量(对象)在使用之前不需要声明标识符的第┅次出现视为变量的创建,标识符由字母开头接字母数字或下划线的不超过63个字符组成一个标识符只是一个引用,它可以指向任意类型比如执行“a=1”后,a作为一个名字指向double型变量再执行“a=’hello’”后,a又指向一个字符串变量原来的double变量因为不再引用而进入垃圾回收,這和Python类似

  对于逻辑类型(布尔类型),和C语言类似Matlab将非 0 数看做 true0 看做 falseMatlab将逻辑型输出为 0 和 1

  Matlab号称是矩阵实验室除了函数句柄和多维数组外,每个变量都看做是矩阵(二维数组)标量被看做1x1矩阵,一维数组被看做1xN或Nx1矩阵Matlab支持将矩阵作为整体进行运算。矩阵嘚行元素间用空格或逗号“,”分隔列元素间用回车或分号“;”分隔矩阵用中括号“[]”表示索引数组用小括号“()”从1开始,多维数組各维索引用逗号隔开)如下例所示:

其中,“数组运算”指的是两个尺寸相同(行数列数相同)数组(或一个是标量)逐个元素之间進行运算得到尺寸相同的数组作为结果“矩阵运算”则是按照数学上矩阵的运算法则运算。下面是一些例子:

其中a、b、c 都是double类型,l 是Logical類型(布尔类型数组)

  Matlab的函数以M函数文件(后缀.m)形式存在,主函数(Main Function这里主函数和C语言主函数不同,它指该函数文件中第一个萣义的函数可以理解为文件的对外接口)名要和文件名相同,一个主函数的例子如下(文件“rank.m”位于“C:\Program

  上面文件首行以function开头的称為函数声明行(function declaration line),紧接一行注释称为H1行(用作lookfor指令)H1行及之后的连续注释称为在线帮助文本(help text,用作help指令)再之后的注释称为编写囷修改记录(上面例子中没有,用作软件归档管理)之后是函数体。当然除函数声明和函数体外其他都是可选的。

  除主函数(main function)外还有局部函数(Local functions),它定义在M函数文件里的除第一个位置外的地方(所以它只能依附在主函数文件中,不能出现在M脚本文件中)咜只在该文件内可见,下面是一个例子(取自Matlab R2014帮助文档“Local

嵌套函数和其他函数的区别是它可以使用包含它的父函数的变量,也就是说咜可以使用除了参数及在函数内部定义的变量之外的变量,这涉及函数工作区(Function Workspace)的概念前面说过有个基本工作区,函数调用时产生函數工作区见例子。

  当前matlab读取文件夹中的文件里有两个文件:abc.mf.m,f.m是M函数文件abc.m是M脚本文件,其内容如下:

运行abc.m后工作区如下(基本笁作区):

在f.m中设置如下断点(第三行红点):

再运行abc.m程序停在断点处,此时工作区和调试界面如下:

我们可以类比C语言的函数调用栈來理解函数工作区想要跨越函数工作区传递变量可以用 global 关键字声明全局共享变量,要在函数内部定义类似C语言的 static 变量使用 persistent 关键字声明變量

  函数句柄(function_handle)类似于C语言的函数指针它用“@”来创建,如下是一个例子(接上面):

这样我们在调用函数时就可以这样写:

囿了函数句柄我们就可以创建匿名函数Anonymous Functions

  利用narginnargout可以实现以不同于函数定义的参数和返回值个数调用函数,例子如下(取自Matlab R2014帮助文档):

  利用vararginvarargout可以实现可变参数和返回值列表例子如下(取自Matlab R2014帮助文档):

  Matlab函数的参数只是个符号,它本身可以是任何类型可以是标量或向量或矩阵,可以在函数内部利用一些内置指令来得到参数个数类型等信息这就是说,Matlab的函数本身是多态或是重载的为方便进行程序设计,Matlab任然支持显示的函数重载参考Matlab R2014a帮助文档“Types of

  1. 全下标访问:A(a,b),a、b可以是标量、向量“:”索引该维度所有值,“a:end”從a到该维度最大值;
  2. 单下标访问:A(a)a可以是标量、向量、矩阵,对a的每个元素把A按列优先索引形成和a尺寸相同矩阵“:”将A按列优先得到列向量;
  3. 逻辑标示法:A(L),L是和A尺寸相同的逻辑矩阵索引出L为1(true)对应的A的元素。

  矩阵的逻辑标示法索引方式和前面提到的算符和表达式的“数组运算”方式结合可以产生强大的“矩阵化”编程方式,用这种方式替代循环结构不仅可以简化代码还可以大大提高代码執行效率,例子如下

  程序要计算下面的函数:

其中theta在二维下为10/(7*pi*h^2),函数图像如下所示(类高斯函数):

下面比较普通循环实现和矩阵實现的效率差别:

矩阵化编程的一般思路是利用数学上矩阵运算规则、矩阵的数组运算以及bsxfun函数必要时辅以矩阵操纵。

  字符串Cell数組,TableStruct本质上都是数组。字符串的元素是char;Cell数组的元素是cellcell相当于一个容器,其中可以存任意类型如double型矩阵,字符串甚至是cell,cell

  1. 要查看Matlab所有关键字请用iskeyword指令(不要任何参数);

  进一步的学习内容可能包括Matlab面向对象编程(类)、GUI编程、Simullink等。我最近有可能会再发一篇“Matlab繪图基础”敬请期待。

  1. 《MATLAB R2011a教程》(张志涌等北京航空航天大学出版社,2011)第1、3、6章,附录A;
}

我要回帖

更多关于 matlab读取文件夹中的文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信