How to index function-matrices?

6 ビュー (過去 30 日間)
TheOpenfield
TheOpenfield 2017 年 11 月 23 日
コメント済み: TheOpenfield 2017 年 11 月 23 日
Take for example: f =@(x) [x,1;1,x]
If you evaluate the function f, you get a matrix in return. Is there any way, to index this matrix before evaluating it?
Like f(1,1) and so forth.
Indexing the matrix while evaluating doesn't work either: f(1)(1,1)
You still need to refer to the result: f1 = f(1); f1(1,1)
=1

採用された回答

Walter Roberson
Walter Roberson 2017 年 11 月 23 日
No, there is no way to index the matrix before evaluating it.
To index after evaluating it, define
INDEX2 = @(Matrix, R, C) Matrix(R,C);
Then
INDEX2(f(1), 1, 1)
  6 件のコメント
Walter Roberson
Walter Roberson 2017 年 11 月 23 日
As I said,
MINDEX = @(x, R, C) INDEX2(M(x), R, C)
TheOpenfield
TheOpenfield 2017 年 11 月 23 日
Ahhh, I see! That's it!

サインインしてコメントする。

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2017 年 11 月 23 日
function out = f(x,ii,jj)
a = [x,1;1,x];
out = a(ii,jj);
end
use
>> f(1,1,1)
ans =
1
>>
  1 件のコメント
TheOpenfield
TheOpenfield 2017 年 11 月 23 日
編集済み: TheOpenfield 2017 年 11 月 23 日
This might be it!
Now i can do further calulations, without loosing the function characteristics, like:
g = @(x) x*f(x,1,1)
There might be still another problem:
In my case, my function is set up as a multiplication of matrices containing functions as entries. Like:
M = @(x) f(x)*f2(x)...
The multiplication of the matrices f, f2 is done while evaluating M at any point.
Is there any easy way to index this function too even though M doesn't know about its matrix properties before evaluation?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by