主要内容

比较函数处理

比较处理由命名函数

MATLAB®认为函数处理你构造相同的命名函数相等。isequal函数返回一个值真正的当比较这些类型的处理。

fun1 = @sin;fun2 = @sin;isequal (fun1 fun2)
ans =逻辑1

如果你保存这些MAT-file处理,然后回加载到工作区,它们仍然是相等的。

比较处理匿名函数

与处理命名函数,函数句柄表示相同的匿名函数是不平等的。他们被认为是不公平的,因为MATLAB不能保证冷冻nonargument变量的值是相同的。例如,在这种情况下,一个是一个nonargument变量。

= 5;h1 = @ (x) * x ^ 2;h2 = @ (x) * x ^ 2;isequal (h1, h2)
ans =逻辑0

如果你复制一个匿名函数句柄,复制和原是相等的。

h1 = @ (x) * x ^ 2;h2 = h1;isequal (h1, h2)
ans =逻辑1

处理嵌套函数进行比较

MATLAB认为函数处理相同的嵌套函数等于只有代码构造这些句柄在同一个包含嵌套的函数调用的函数。这个函数构造两个处理嵌套函数相同。

函数(h1, h2) = test_eq (a, b, c) h1 = @findZ;h2 = @findZ;函数z = findZ z =。^ 3 + b。^ 2 + c”;结束结束

嵌套函数句柄由相同的功能和在相同的调用父函数被认为是相等的。

(h1, h2) = test_eq(7) 4, 19日;isequal (h1, h2)
ans =逻辑1

函数句柄由不同的调用不被认为是相等的。

(q1、q2) = test_eq(7) 4, 19日;isequal (h1, q1)
ans =逻辑0

另请参阅

相关的话题