Borrar filtros
Borrar filtros

How to use svd in cellfun?

1 visualización (últimos 30 días)
Xh Du
Xh Du el 5 de En. de 2017
Comentada: Adam el 5 de En. de 2017
Hello,
I'd like to use svd in cellfun. Imagine a multidimensional cell like this:
inst = cell(1, 3, 5, 2);
inst(:,:,1,1) =
[308x21 double] [308x21 double] [308x21 double]
Each element of inst is a 308*21 double. Now I'd like to apply SVD on each element of inst to extract the singular values, so I write this:
instsvd = cellfun(svd, inst, 'UniformOutput', false);
MATLAB gives me error:
Error using svd
Not enough input arguments.
Any idea how to solve this?
Many thanks!

Respuesta aceptada

Adam
Adam el 5 de En. de 2017
Editada: Adam el 5 de En. de 2017
instsvd = cellfun(@(x) svd(x), inst, 'UniformOutput', false);
The first argument to cellfun should be a function handle, you are passing the name of a function instead, with no arguments. The above should work and is using an anonymous function where 'x' is a placeholder for each of the elements of your cell array in turn.
  3 comentarios
Xh Du
Xh Du el 5 de En. de 2017
Wow, thanks!
Adam
Adam el 5 de En. de 2017
Ah, yes, I keep forgetting that, I'm so used to just wrapping things in anonymous functions!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Eigenvalues en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by