How to use svd in cellfun?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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!
0 comentarios
Respuesta aceptada
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
Adam
el 5 de En. de 2017
Ah, yes, I keep forgetting that, I'm so used to just wrapping things in anonymous functions!
Más respuestas (0)
Ver también
Categorías
Más información sobre Eigenvalues en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!