matlab中的eval函数使用

在matlab的命令行窗口中输入help eval命令回车就可以看到eval函数的官方解释,大概的意思就是执行matlab中的表达式,计算expression表示的代码。意思是相当于在命令行中输入expression表达式命令的意思。

用法:

eval(expression)
[output1,…,outputN] = eval(expression)

这里就很奇怪了,为啥不直接在命令行中输入命令而是要多使用一个eval函数来完成这样的事情呢。这个是有原因的,下面举个例子:

1、比如你需要使用matlab加载一些数据,并且这些数据保存在很多个文件中,文件的命名有一定的规律,比如:data1.mat data2.mat......等,你需要怎样来加载呢?是直接写n个load data1.mat吗,显然不是的,当遇到这种情况的时候就是eval函数展示其用处的时候了。你可以这样写:

for i = 1:n
eval(['load',' ','data',num2str(i),'.mat']); % 这样完全跟上面的功能一样
end

2、当你需要在一串字符串中提取出数字,或者将一串十进制的数中将每个数都提取出来时,每个数字之间使用空格分开,即a = '12 34 45 67',这样的形式你怎样将他们提取出来变成一个矩阵呢?这个同样可以使用eval函数来解决这个问题:

for i = 1:4
num(i) = eval(['hex2dec(','a(3*i-2:3*i-1)',')']); % 使用这个语句就可以实现将上面的字符串中的数字转换为相应的矩阵了
end

注意有坑:

1、eval函数相当于在命令行中输入命令,所以命令的形式必须要跟expression的形式要一致,否则回出错,这个就是上面代码1中为什么需要使用:eval(['load',' ','data',num2str(i),'.mat']);在expression中间还添加了' ',这个就是需要保持expression正确。

2、eval由于会直接将命令输出,所以它可以自动识别有实际数值的变量,这个就是上面代码2中直接输入i的表达式的原因:eval(['hex2dec(','a(3i-2:3i-1)',')']);

3、如果在eval表达式中存在符号'时,需要使用转义字符即需要在'的地方添加两个''才可以,这样表示他就是一个'而不是表示字符串的意思。

matlab中的eval函数使用的更多相关文章

  1. python实现类似于Matlab中的magic函数

    参考这篇文章的代码封装了一个类似Matlab中的magic函数,用来生成魔方矩阵. #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy ...

  2. Matlab中的eig函数和Opecv中eigen()函数的区别

    奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...

  3. JavaScript中的eval()函数

    和其他很多解释性语言一样,JavaScript同样可以解释运行由JavaScript源代码组成的字符串,并产生一个值.JavaScript通过全局函数eval()来完成这个工作. eval(“1+2” ...

  4. Matlab中的fread函数

    Matlab中fread函数用法    "fread"以二进制形式,从文件读出数据. 语法1:[a,count]=fread(fid,size,precision) 语法2:[a, ...

  5. Ajax中的eval函数的用法

    eval的定义和使用: Eval它是用来计算某个字符串,并且执行其中的JavaScript代码. 语法: 1) eval函数接受一个string这个参数,并且这个参数是必须的,这个参数就是要计算的这个 ...

  6. matlab中的sub2ind函数

    在matlab中,矩阵的存储是按列优先,sub2ind函数将矩阵中指定元素的行列下标转换成存储的序号,即线性索引号.下面,我们举例子进行说明. 1 建立一个3*4*2的矩阵 rng(0,'twiste ...

  7. javascript中的eval函数

    eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数.否则会将字符串当成js代码进行编译,如果编译失败则抛出语法错误(SyntaxError)异常.如果编译成功则开始执行这段代码,并 ...

  8. matlab中CRC的函数使用

    先学习一下matlab中CRC函数. 语法如下: h = crc.generator(‘Polynomial', polynomial, ‘param1', val1, etc.) 再看一个例子就比较 ...

  9. matlab中help所有函数功能的英文翻译

    doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...

随机推荐

  1. SQL SERVER 字符串类型varchar格式转换成int类型进行排序

    日常数据分析过程中,经常会遇到排序的情况,有时会根据空字段表进行临时排序,转换数据类型 使用  ORDER BY CAST (<字段名> AS INT)  ASC 举例: SELECT I ...

  2. 小白学 Python(1):开篇

    人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员[臭鸡蛋什么的 ...

  3. git基础命令详解

    一些必须要知道的概念 git的三个工作区域:工作目录.暂存区.git仓库. 工作目录:其实就是本地文件磁盘上的文件或目录: 暂存区:是一个文件,保存了下次提交的文件列表信息,一般在git仓库目录中: ...

  4. JavaScript-改变this指向

    一.this指向的详解 概括:this的指向到底是指向哪里?通常来说,只有当函数执行的时候才可以确定this指向的到底是谁,简单的也可以这么说:this最终指向的是那个调用它的对象. 常见的一般有以下 ...

  5. 新手也能看懂的 SpringBoot 异步编程指南

    本文已经收录自 springboot-guide : https://github.com/Snailclimb/springboot-guide (Spring Boot 核心知识点整理. 基于 S ...

  6. 一个基于C++11的单例模板类

    #ifndef _SINGLETON_H_#define _SINGLETON_H_ template<typename T>class Singleton : public Uncopy ...

  7. mongodb学习笔记系列一

    一.简介和安装 ./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017 mongodb非常 ...

  8. Django 从零开始

    Django在Python的web开发框架中属于重量级的框架,功能多而全,但是相对的体积和坑也会比较多,但是其实学习Python的web开发个人觉得Django其实会比Flask好上手,特别是0基础的 ...

  9. @EnableTransactionalManager 发生了什么

    @EnableTransactionalManager 利用TransactionManagementConfigurationSelector 给容器中注入bean,导入2个组件: AutoProx ...

  10. C#关于private protected sealed Virtual/Override

    Public:公开权限 Private:修饰类时类为程序集或者包含此类的类内部权限:修饰变量时只能类内部使用: Protected:修饰变量,只能继承类可以使用,对外(包括继承类的实例)无权限: Ab ...