How to apply function eig to an array of matrices?

I am trying to find the eigenvectors and eigenvalues of an array of matrices without doing a for loop. A simple example would be like:
A[:,:,1] = [1,2;3,4]
A[:,:,2] = [3,4;5,6]
...
A[:,:,10] = [19,20;21,22]
And the matrix elements can be arbitrary. My question is whether there is an efficient way to solve the eigen problem of each of these matrices without doing a for loop? Can tips of vectorization help us here?

回答 (2 件)

the cyclist
the cyclist 2019 年 7 月 7 日
編集済み: the cyclist 2019 年 7 月 7 日

0 投票

cellfun(@eig,A,'UniformOutput',false)
or something like this, will be at the heart of your solution. You might need to read the documentation for cellfun and/or eig to get exactly the output you want.
Bruno Luong
Bruno Luong 2019 年 7 月 7 日

0 投票

If your matrices is 2x2 or 3x3 you can use this FEX for eigen values, then this one for engen vectors.

カテゴリ

ヘルプ センター および File Exchange で Linear Algebra についてさらに検索

製品

リリース

R2019a

質問済み:

2019 年 7 月 7 日

回答済み:

2019 年 7 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by