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. pc vue 项目中的菜单权限控制

    在pc 管理系统这种类型的产品,通常会涉及到账号权限的控制,不同的账号权限能浏览的功能模块是不同的,对应侧边栏菜单模块的显示也会不同. 场景一.(电商类管理系统) 登录 登录后,依次获取账号 toke ...

  2. CentOS 7 的 systemctl 命令

    Centos 7.* 使用 Systemd 进行系统初始化,因此,Centos 7.* 中我们可以使用 systemctl 管理系统中的服务. systemctl 管理的服务均包含了一个以 .serv ...

  3. RegExp实现字符替换

    将字符串组中的所有Paul替换成Ringo,g:执行全局匹配,查找所有匹配而非在找到第一个匹配后停止;\b:匹配单词边界,划分匹配字符的起始范围 <!DOCTYPE html> <h ...

  4. Java微服务(二):负载均衡、序列化、熔断

    本文接着上一篇写的<Java微服务(二):服务消费者与提供者搭建>,上一篇文章主要讲述了消费者与服务者的搭建与简单的实现.其中重点需要注意配置文件中的几个坑. 本章节介绍一些零散的内容:服 ...

  5. 【前端词典】4 个实用有趣的 JS 特性

    前言 最近在学习的过程中发现了我之前未曾了解过的一些特性,发现有些很有趣并且在处理一些问题的时候可以给我一个新的思路. 这里我将这些特性介绍给大家. 4 个有趣的 JS 特性 利用 a 标签解析 UR ...

  6. Ubuntu 16.04安装Java 8

    1 Java 8 下载地址 http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs. ...

  7. iOS开发请您把握现在 — 面向未来学习

    iOS开发请您把握现在 — 面向未来学习 这一篇文章,如果你是一名iOS开发正好也处于开发晋升瓶颈迷茫期,不妨停下你的脚步,花五分钟看看,兴许有你需要的!文章结尾有彩蛋 群里常见的唱哀 iOS现在到底 ...

  8. caffe中softmax loss源码阅读

    (1) softmax loss <1> softmax loss的函数形式为:     (1) zi为softmax的输入,f(zi)为softmax的输出. <2> sof ...

  9. ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266

        博主的 ESP8266开发之旅 专栏主要分为三个部分: 基础篇 网络篇 应用篇     从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界.在此,博主认为各位读者已经具备以下前提 ...

  10. Shiro 并发登录控制

    本文转载于:https://www.w3cschool.cn/shiro/epht1ifg.html