Matlab 如何从矩阵函数定义新函数?
这是一个非常简单的问题,尽管我不知道如何处理它 我定义了一个函数Matlab 如何从矩阵函数定义新函数?,matlab,Matlab,这是一个非常简单的问题,尽管我不知道如何处理它 我定义了一个函数f(x,y),它将返回一个,比如说,2*2矩阵。我想定义一个新函数g,它的值是f(x,y)的(1,1)元素。我天真地尝试了g=@(x,y)(f(x,y))(1,1),当然失败了。请帮帮我 您可以使用:) 您可以使用该函数 让我们定义f(x,y)来返回一个2x2矩阵 f = @(x,y) [1*x 2*y;3*x 4*y].^2 ; 然后让我们定义一个函数g11(x,y),它返回f(x,y)的元素{1,1}。(还有一个额外的函数g2
f(x,y)
,它将返回一个,比如说,2*2矩阵。我想定义一个新函数g
,它的值是f(x,y)
的(1,1)元素。我天真地尝试了g=@(x,y)(f(x,y))(1,1)
,当然失败了。请帮帮我 您可以使用:)
您可以使用该函数
让我们定义f(x,y)
来返回一个2x2矩阵
f = @(x,y) [1*x 2*y;3*x 4*y].^2 ;
然后让我们定义一个函数g11(x,y)
,它返回f(x,y)
的元素{1,1}。(还有一个额外的函数g21
,返回{2,1}元素)
现在:
>> f(3,4)
ans =
9 64
81 256
>> g11(3,4)
ans =
9
>> g21(3,4)
ans =
81
要想更巧妙地使用没有临时变量的字段赋值,请阅读中所有漂亮的答案。获取矩阵(1,1)元素的最简单方法就是调用
f(1,1)
。实际上并不需要函数。但是f(1,1)
将返回一个2*2矩阵。对不起,我知道您调用了函数f
。如果你有一个矩阵M
,你可以使用M(1,1)
得到它的(1,1)
元素。看一看。这里介绍了几种可能的解决方案。这真的很有帮助!谢谢!这有帮助!谢谢!漂亮的解决方案,我会记住的!不幸的是,对于大型矩阵来说不是很实用。当然,getfield是一个合适的:)
g11 = @(x,y) getfield( f(x,y) , {1,1} ) ;
g21 = @(x,y) getfield( f(x,y) , {2,1} ) ;
>> f(3,4)
ans =
9 64
81 256
>> g11(3,4)
ans =
9
>> g21(3,4)
ans =
81