Matlab里evalin和assignin的用法

原文地址:Matlab里evalin和assignin的用法作者:了凡春秋

assignin与evalin
    MATLAB通常的基本工作空间是'base'空间。MATLAB在程序运行过程中,将为每个函数分配它自己的函数工作空间(从基本空间中分割出的一块, 以函数名作为其工作空间名),各个工作空间之间的变量是不能够直接引用的,在函数退出之后,该函数空间也就立即被注销。因此,对于函数文件,运行结果除输出变量返回到基本工作空间或者其父工作空间(调用该函数的程序的工作空间)之外,其他中间变量不在基本工作空间或者其父工作空间保留。而对于脚本M文件,其工作空间与基本工作空间'base'是共享的,其运算过程中所用到的中间变量也将在基本工作空间'base'中保留。


assignin为工作空间的变量指派值,其语法为:
assignin(WS,'name',V) ,其中,WS为工作空间名称,'name'为变量名,V是为该变量指派的值。


evalin实现在工作空间中某个表达式字符串,并将结果返回,其语法为:
evalin(WS,'expression'),其中,WS为工作空间名称,'expression'为表达式符号串。


利用assignin与evalin指令,可以实现不同M文件主函数与子函数的工作空间变量的共享

例:

function test
clear;     %清空当前工作空间
a=3;       % 在基本工作空间创建一个变量
assignin('base','a',5); % 为该变量指派新的值

b = evalin('base','3*a+2'); %在基本工作空间中计算式子3*a+2的值并将结果赋予b   

end 
a      % 查看现在该变量的值    
a =
    


b =
    17

http://hi.baidu.com/%CA%A9%D4%C6%CC%CE/blog/item/80519c2c74dd39eb8a1399e9.html

 

evalin功能很强大,可以运行不同工作区域里的Matlab任何命令:

evalin(ws, expression)

[a1, a2, a3, ...] = evalin(ws, expression)

 

ws:工作区域(default 是base)

expression: 合法的matlab命令

 

比如想在运行函数同时,运行工作区域里一个赋值命令:

evalin('base', 'a=1');

看一下,是不是你的workspace里面有了一个a的变量。

 

http://www.ilovematlab.cn/viewthread.php?tid=11196&highlight=evalin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

判断一个程序员水平高低的标准?

a.结果导向 胜者为王,败者为寇。也可以理解为做过什么NB的项目,带来了多少价值。b.竞赛比武 在同一平台下,大家八仙过海各显神通。c.广度和深度 在平时工作或交谈中,逼格最高者被大家膜拜。d.熟练度 …

git编辑器选哪个_[Git]Git创建和修改代码库

有了上一篇的简易Git使用指南,接下来我们就可以创建自己的代码库了创建代码库1.把文件夹变成git文件夹git init 这样子就这里面的内容就可以git了2.把要git的文件放入暂存区 git有三个空间: Working Directory工作区,Staging Area暂存区,Repo…

Q 语言初学者系列:(1)开门篇

声明:本系列文章全部参考自官方教程,由于缺乏中文资料而且本人E文实在太菜,对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程, 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户…

Java 将数据写入磁盘并读取磁盘上的文件

package test; import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;import java.util.ArrayList;import java.util.List; public class test { public static void main(String[] args) { //创建集合 List<String> listnew ArrayList&l…

simulink怎么生成vxworks的执行程序_Matlab/Simulink基础了解(五):基础Simulink模型搭建及Embedded基础使用...

为了方便大家阅读&#xff0c;从这章开始在章节名中添加该章节要讲的主要的东西。本章给大家讲一个最简单的Simulink模型&#xff1a;在处理应用逻辑时常常会判断车速信号来得到车是否静止&#xff0c;如果车已经跑起来了&#xff0c;很多功能都会被禁用&#xff0c;比如诊断&a…

Q 语言初学者系列:(2)基本数据类型

明&#xff1a;本系列文章全部参考自官方教程&#xff0c;由于缺乏中文资料而且本人E文实在太菜&#xff0c;对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程&#xff0c; 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户名…

Megacli恢复RAID0磁盘数据

今天干了一件蠢事&#xff0c;距离删库跑路&#xff0c;只差一步。把一块RAID0的磁盘给拔掉了,拔掉之后发现这是一块数据盘&#xff0c;幸好这个数据库是一台备库。赶紧动手恢复&#xff0c;以下是恢复的过程。 首先把拔下来的盘插回去&#xff0c;通过Megacli查看状态是这样的…

内核堆栈 用户堆栈_堆栈痕迹从何而来?

内核堆栈 用户堆栈我相信&#xff0c;阅读和理解堆栈跟踪是每个程序员都必须具备的一项基本技能&#xff0c;以便有效地解决每种JVM语言的问题&#xff08;另请参阅&#xff1a; 过滤日志中无关的堆栈跟踪行和首先记录引起根的异常 &#xff09;。 那么我们可以从一个小测验开始…

Java中使用log4j记录日志

在项目开发中&#xff0c;记录错误日志是一个很有必要功能。一是方便调试&#xff1b;二是便于发现系统运行过程中的错误&#xff1b;三是存储业务数据&#xff0c;便于后期分析&#xff1b; 在java中&#xff0c;记录日志&#xff0c;有很多种方式。 比如&#xff0c;自己实…

python如何输出两列数据_如何用python将一列数据分为两列?

引用来自“Ashkandi”的评论[{date: c[:10], time: c[11:]} for c in Col] 引用来自“vx2008”的评论 谢谢回复&#xff0c;这行代码执行完了以后&#xff0c;日期和时间都村到哪里了呢&#xff1f; 我是了一下&#xff0c;调用date&#xff0c;提示没有定义date&#xff0c;请…

Q 语言初学者系列:(3)Lists 初级

声明&#xff1a;本系列文章全部参考自官方教程&#xff0c;由于缺乏中文资料而且本人E文实在太菜&#xff0c;对于E文较好的朋友可以直接通过下面的链接访问官方网站提供的教程&#xff0c; 欢迎大家一起学习讨论。 hhttps://code.kx.com/trac/wiki/QforMortals2/contents 用户…

数据库图书管理建表与修改表

根据调研选定实体及相应属性画出E-R图 ​ 2、将E-R模型转换为对应关系模型&#xff0c;并指出主码和外码 图书book&#xff08;书号&#xff0c;类别&#xff0c;出版社&#xff0c;作者&#xff0c;书名&#xff0c;定价&#xff0c;备注&#xff09;&#xff1b; 读者reade…

如何指南:Apache Drill入门

Apache Drill是一种引擎&#xff0c;可以连接到许多不同的数据源&#xff0c;并为它们提供SQL接口。 它不仅是想跳入任何复杂事物的SQL接口&#xff0c;而且是一个功能强大的接口&#xff0c; 其中包括对许多内置函数和窗口函数的支持。 尽管它可以连接到您仍然可以使用SQL查询…

python3编程入门_在类Unix系统上开始Python3编程入门

>>> s Hello >>> x len(s) >>> print("The length of %s is %d" % (s,x)) The length of Hello is 5 看看《Python基础编程》中对格式化输出的总结&#xff1a; (1). %字符&#xff1a;标记转换说明符的开始 (2). 转换标志&#xff1a;-…

visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

问题描述 “Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project3.exe”。已加载符号。 “Win32Project3.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。 “Win32Project3.exe”(Wi…

matlab的一个疑问?

把逻辑值放入一个已知矩阵&#xff0c;为啥结果是&#xff1a;真就取矩阵的值&#xff0c;假就不取值&#xff1f; K>> aaaarandi(10,10,2) aaaa 6 3 10 4 6 7 5 2 6 3 8 2 1 2 9 4 2 9 5 5 K>> aaaa9 ans 102 logical array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 …

如何使用log4j记录日志

【1】从零开始 a). 新建Java Project>>新建package>>新建java类&#xff1b; b). import jar包&#xff08;一个就够&#xff09;&#xff0c;这里我用的是log4j-1.2.14.jar&#xff0c; c). 新建log4j.properties&#xff0c;置于project根目录下&#xff1b; log…

python验证码 识别代码不准_谈谈Python进行验证码识别的一些想法

用python加“验证码”为关键词在baidu里搜一下&#xff0c;可以找到很多关于验证码识别的文章。我大体看了一下&#xff0c;主要方法有几类&#xff1a;一类是通过对图片进行处理&#xff0c;然后利用字库特征匹配的方法&#xff0c;一类是图片处理后建立字符对应字典&#xff…

matlab 安装jdbc.jar

加到matlab的启动项下面。 方法如下&#xff1a;找到matlab的安装路径&#xff0c;如下&#xff1a; 有一个classpath的txt文件&#xff0c;打开&#xff0c;在末尾添加jdbc的jar包路径即可&#xff0c;如下&#xff1a; 或者&#xff0c;直接在matlab 上用以下命令&#xff0…

MyEclipse软件中快捷键

在调试程序的时候&#xff0c;我们经常需要注释一些代码&#xff0c;在用Myeclipse编程时&#xff0c;就可以用 Ctrl/ 为选中的一段代码加上以 // 打头的注释&#xff1b;当需要恢复代码功能的时候&#xff0c;又可以用Ctrl/ 去掉注释。这样的快捷键确实让我们编程变得容易多了…