文件帮助中心文件
在指定的工作区中为变量分配值
Assignin(WS,VAR,VAL)
例子
Assivein(WS.那var.那瓦)分配价值瓦到变量var.在工作区WS.。例如,Displayin('base','x',42)将值42分配给变量X在matlab.®基础工作区。
Assivein(WS.那var.那瓦)
WS.
var.
瓦
Displayin('base','x',42)
X
如果瓦需要评估,Matlab在调用的函数中评估它赋予,不是在指定的工作空间中WS.。如果瓦是一个函数句柄,它必须在调用的函数中进行评估赋予。
赋予
这赋予功能对这些任务很有用:
将数据从函数导出到基础工作区。
从函数内,更改在调用者函数的工作区中定义的变量的值。例如,您可以在调用函数参数列表中更改变量的值。
全部收缩
在当前工作文件夹中的文件中,创建一个添加两个数字的函数,然后为变量分配值fcnstatus.在基础工作区。
fcnstatus.
功能C = MyAdd(A,B)C = A + B;str = sprintf('%s称为%d,%d(%s)',mfilename,a,b,char(datetime));Assivein('根据'那'fcnstatus',str)结尾
在命令提示符下,调用函数。
n = myadd(2,3)
n = 5.
查看值的值fcnstatus.变量迈达德函数分配在基础工作区中。
迈达德
fcnstatus ='Myadd调用2,3(2017年11月14日14:56:14)'
在当前工作文件夹中的文件中,创建一个函数,显示一个对话框,以输入姓名和诞生年份并计算2050年的年龄。该赋予函数将值导出到MATLAB工作区变量名称和年龄2015.。
名称
年龄2015.
功能mydialog提示= {'输入名字:'那'进入诞生年份:'};答案= inputdlg(提示);n =答案{1};生育师= str2double(答案{2});a = 2050生菜;Assivein('根据'那'名称',n);Assivein('根据'那'年龄2015年',一种);结尾
在命令提示符下,运行函数,输入数据,然后单击“确定”。
MyDialog.
查看Workspace浏览器中的导出值。
创建一个将输入年龄的函数更改为42.呼叫赋予在localfcn.改变价值一种在主要功能的工作空间中,更新。
localfcn.
一种
更新
功能更新(a)validattributes(a,{'数字'},{'scalar'})fprintf('\ tyour年龄:%d \ n',a)localfcn fprintf('\ tyour更新年龄:%d \ n',一种)结尾功能localfcn Assistin('呼叫者'那'一种',42)结尾
在命令提示符下,调用主函数。
更新(37)
您的年龄:37您的更新年龄:42
虽然此示例描述了如何将变量分配到调用者工作区中,但最佳实践是具有本地功能localfcn.将更新的年龄作为输出参数返回。
在当前工作文件夹中的文件中,创建一个查找随机数组的最小值的函数。这ascysfh.本地功能为函数句柄分配FH.进入工作区丁当兰。这丁当兰功能评估FH.与输入有关N。
ascysfh.
FH.
丁当兰
N
功能m = minrand(n)分配= fh(n)m = min(a(:));结尾功能Assegnfh fh = @(dim)rand(dim);Assivein('呼叫者'那'fh',fh)结尾
用输入值调用函数2。
m = minrand(2)
A = 0.3486 0.1423 0.0419 0.0766 m = 0.0419
函数处理评估到2×2阵列的随机数。
创建另一个函数版本,调用MINRAND2.,其中本地功能覆盖兰特功能在函数句柄定义中。
MINRAND2.
兰特
类似于丁当兰例如,这Assemsfh2.本地功能分配FH.进入工作区MINRAND2.。这Assemsfh2.功能覆盖了兰特在其工作空间中的函数,变量命名兰特并创建功能句柄。此行为与匿名函数一致 - 使用创建时可用的变量创建函数句柄。因此,函数处理评估MINRAND2.结果是N索引到兰特阵列定义Assemsfh2.。
Assemsfh2.
功能m = minrand2(n)分配FH2(n)a = fh(n)m = min(a(:));结尾功能Assegsfh2(n)rand = 13 * inton(n);fh = @(dim)rand(dim);Assivein('呼叫者'那'fh',fh)结尾
m = minrand2(2)
a = 13 m = 13
为调用者工作区分配匿名函数时,Matlab将函数句柄的定义放在调用者工作区中的变量中。呼叫的功能赋予评估功能句柄。虽然此示例描述了如何将变量分配到调用者工作区中,但最佳实践是具有本地功能ascysfh.将函数句柄返回为输出参数。
'根据'
'呼叫者'
工作区,指定为'根据'或者'呼叫者'。
在MATLAB基础工作区中指定值,使用'根据'。基础工作空间存储在MATLAB命令提示符下创建的变量,包括脚本创建的任何变量,假设您从命令行或编辑器运行脚本。
在调用者函数的工作空间中分配变量,使用'呼叫者'。调用者工作区是函数的工作空间,称为当前运行的函数。例如,假设凤呼叫fun。来电者工作区fun是凤。因此,从fun,您可以将值分配给变量凤使用赋予并指定工作区'呼叫者'。
凤
fun
笔记
分配给呼叫者工作区中的变量可以使代码更难以理解,向用户提供令人惊讶的结果(其工作区中的意外或重新定义的变量),并具有负面的性能影响。最佳实践是使函数将变量返回为输出参数。
基础和来电者工作区在以下情况下等效:
您在命令提示符和主函数调用时调用函数赋予。
你打电话赋予在命令提示符下。
数据类型:char|细绳
char
细绳
变量名称,指定为字符向量或字符串标量。如果var.在指定的工作区中不存在,赋予函数创建它。
变量的值,指定为标量或数组值。瓦可以有任何数据类型,并且可以包括matlab表达式。
如果变量的值需要评估,Matlab评估包含呼叫的函数中的表达式赋予,不是在指定的工作空间中WS.。如果瓦是一个函数句柄,它必须在调用的函数中进行评估赋予。
例子:5.
5.
例子:'你好'
'你好'
例子:兰特(3,7)
兰特(3,7)
例子:@cos.
@cos.
这赋予函数不会为数组的特定元素分配值。所以var.不能包含数组索引。此代码会导致错误。
x = 1:8;Displayin('base','x(3:5)', - 1);
要为数组的特定元素分配值,请使用评价功能。
评价
评价('Base','x(3:5)= -1')
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室