Matlab 对于sin(1.2),错误:下标索引必须是实正整数或逻辑数。跟随

Matlab 对于sin(1.2),错误:下标索引必须是实正整数或逻辑数。跟随,matlab,Matlab,在Matlab中,我想计算数组v=[0.1,0.01,0.001]的sin(v)。但是有一个错误,因为令人费解的是sin函数希望浮点数带有昏迷: >> sin(1.2) Subscript indices must either be real positive integers or logicals. >> sin(1,2) ans = 0.93204 为什么??这里发生了什么?因为cos工作正常 >> cos(1.2) ans = 0.36236

在Matlab中,我想计算数组v=[0.1,0.01,0.001]的sin(v)。但是有一个错误,因为令人费解的是sin函数希望浮点数带有昏迷:

>> sin(1.2)
Subscript indices must either be real positive integers or logicals.

>> sin(1,2)

ans =
0.93204
为什么??这里发生了什么?因为cos工作正常

>> cos(1.2)

ans =
0.36236

>> cos(1,2)
Error using cos
Too many input arguments.

谢谢你的帮助

在Matlab中,可以声明与(内置)函数同名的变量。例如,
sin=1
,此声明将优先于原始函数。试一试

whos sin

要查看是否有名为sin的变量?如果是这样,请将其与

clear sin

在Matlab中,可以声明与(内置)函数同名的变量。例如,
sin=1
,此声明将优先于原始函数。试一试

whos sin

要查看是否有名为sin的变量?如果是这样,请将其与

clear sin

您是否有变量名
sin
?试着先做一个
清除
。@Susliks如果答案正确,你能接受吗?如果没有,请指定答案的错误。是否有变量名
sin
?试着先做一个
清除
。@Susliks如果答案正确,你能接受吗?如果不是,请说明答案有什么问题。您应该补充一点,变量不得与Matlab中的函数同名。这并不完全明显。事实上,这不是一个不能,而是一个can,因为声明
sin=1
显然是有效的…我想这应该永远不会更精确(除非您绝对确定您永远不会使用该特定函数)。您的示例赋值
sin=1
不会改变该点。事实上,通过赋值
sin=1
可以隐藏函数sin。这意味着
sin(2)
将在该特定工作区中给出一个错误。当然,您可以为函数提供绝对路径,但它仍然可以工作,但请想象一下它的外观,
longPath\asin(1/(aLongPath\cos(longerPath\myFun(1)))
。我可能错过了很多,但这无助于证明需要。好吧,@patrik,我们可以同意:-)一个有趣的问题是,是否可以以某种方式防止或警告这种“意外特性”?您应该补充一点,变量不得与Matlab中的函数同名。这并不完全明显。事实上,这不是一个不能,而是一个can,因为声明
sin=1
显然是有效的…我想这应该永远不会更精确(除非您绝对确定您永远不会使用该特定函数)。您的示例赋值
sin=1
不会改变该点。事实上,通过赋值
sin=1
可以隐藏函数sin。这意味着
sin(2)
将在该特定工作区中给出一个错误。当然,您可以为函数提供绝对路径,但它仍然可以工作,但请想象一下它的外观,
longPath\asin(1/(aLongPath\cos(longerPath\myFun(1)))
。我可能错过了很多,但这无助于证明需要。好吧,@patrik,我们可以就此达成一致:-)一个有趣的问题是,这个“意外功能”是否可以以某种方式预防或警告?