扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、假如我要对a1,a2,a3,a4,……,a100分别赋予1,2,3,……,100,这时eval就发挥作用了。
为呼图壁等地区用户提供了全套网页设计制作服务,及呼图壁网站建设行业解决方案。主营业务为网站建设、网站制作、呼图壁网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
for i=1:100
eval(['a' num2str(i) '=' num2str(i)]);
end
2、再比如批量存数据或图片文件等等。
那么开始提到的例子也就好解释了。
注意:eval中的中括号在两个以上字符串出现时一定要有,起连接作用。
如:
input:[‘hello’ ‘world’]
output:helloworld
扩展资料:
函数说明
eval(expression)在字符串表达式中评估MATLAB代码。如果你在一个匿名函数或者含有嵌套函数的函数里面使用eval,那么评估的expression将不能创建一个变量。
[output1,...,outputN]=eval(expression) 从特定变量表达式即expression中存储所有的输出。
输入参数:
expression:含有有效的MATLAB表达式的字符串。如果要在表达式即expression里面包含数值,请使用int2str,num2str或者sprintf进行转换。
输出参数:
output1,...,outputN:是评估的表达式expression中的输出。
参考资料:百度百科—eval(MATLAB函数)
不是因为内置函数的问题,而是你调用coms函数的时候的参数没传过去,我改了的代码如下:
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title计算/title
script language="javascript" type="text/javascript"
function coms(op){
var num1,num2;
num1=parseFloat(document.myform.txtNum1.value);
num2=parseFloat(document.myform.txtNum2.value);
if(op=="+")
document.myform.txts.value=num1+num2;
if(op=="-")
document.myform.txts.value=num1-num2;
if(op=="*")
document.myform.txts.value=num1*num2;
if(op=="/" num2!=0)
document.myform.txts.value=num1/num2;
}
/script
/head
body
form action="" name="myform" id="myform"
table id="op"
tr
tdinput name="txtNum1" type="text" id="txtNum1"//td
/tr
tr
td
select id="select"
option value="+" + /option
option value="-" - /option
option value="*" × /option
option value="/" ÷ /option
/select
/td
/tr
tr
tdinput name="txtNum2" type="text" id="txtNum2"/
/td
/tr
tr
tdinput name="but" type="button" onClick="coms(document.getElementById('select').value)" value="计算"//td
/tr
tr
tdinput name="txts" type="text" id="txts"//td
/tr
/table
/form
/body
/html
prompt() 方法用于显示可提示用户进行输入的对话框。
html
head
script type="text/javascript"
function disp_prompt()
{
var name=prompt("Please enter your name","")
if (name!=null name!="")
{
document.write("Hello " + name + "!")
}
}
/script
/head
body
input type="button" onclick="disp_prompt()"
value="Display a prompt box" /
/body
/html
1:调用关键字function来构造
function distance(x1,x2,y1,y2)
{
var dx=x2-x1;
var dy=y2-y1;
return Math.sqrt(dx*dx+dy*dy);
}
2:使用Function()构造函数(请注意与上面的大小写)
var f=new Function*"x","y","return x*y");
这行代码创建了一个新函数,该函数和你所熟悉的语法定义的函数基本上时等价的:
function f(x,y)
{
return x*y;
}
Functino()构造函数可以接受任意多个字符串参数。它的最后一个参数时函数的主体,其中可以包含任何JavaScript语句,语句之间用分号分隔。其他的参数都是用来说明函数要定义的形式参数名的字符串。如果你定义的函数没有参数,那么可以只需给构造函数传递一个字符串(即函数的主体)即可。
注意,传递给构造函数Function()的参数中没有一个用于说明它要创建的函数名。用Function()构造函数创建的未命名函数有时被成为“匿名函数”。
你可能非常想知道Function()构造函数的用途是什么。为什么不能只用function语句来定义所有的函数呢?原因是Function()构造函数允许我们动态地建立和编译一个函数,它不会将我们限制在function语句预编译的函数体中。这样做带来的负面影响效应就是每次调用一个函数时,Function()构造函数都要对它进行编译。因此,在循环体中或者在经常使用的函数中,我们不应该频繁地调用这个构造函数。
使用Function()构造函数的另一个原因是它能够将函数定义为JavaScript表达式的一部分,而不是将其定义一个语句,这种情况下使用它就显得比较的方面,甚至可以说精致。
3:函数直接量
函数直接量是一个表达式,它可以定义匿名函数。函数直接量的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无需指定函数名。下面的三行代码分别使用function()语句、Funciont()构造函数和函数直接量定义了三个基本上相同的函数:
function f(x){return x*x};
var f=new Function("x","return x*x;");
var f=function(x){reurn x*x};
在JavaScript1.1中,可以使用构造函数Function()来定义函数,在JavaScript1.2和其后的版本中,还可以使用函数直接量来构造函数。你应该注意这两种方法之间的重要差别。
首先,构造函数Function()允许在运行时动态地创建和编译JavaScript代码。但是函数直接量却是函数结构的一个静态部分,就像function语句一样。
其次,作为第一个差别的必然结果,每次调用构造函数Function()时都会解析函数体并且创建一个新东汉数对象。如果对构造函数的调用出现在一个循环中,或者出现在一个经常被调用的函数中,这种方法的效率非常低。另一个方面,函数直接量或出现在循环和函数中的嵌套函数不是在每次调用时都被重新编译,而且每当遇到一个函数直接量时也不创建一个新的函数对象。
Function()构造函数和函数之间量之间的第三点差别是,使用构造函数Function()创建的函数不使用词法作用域,相反的,它们总是被当作顶级函数来编译,就像下面代码所说明的那样:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流