Error using arrayfun : Non scalar in Uniform output
Afficher commentaires plus anciens
Hello,
I have a cell array (Z) of size (480*1) where in each row I have the individual double arrays that I want(e.g. 1*70 double). Now I want to apply a custom function to each row (each elements of the cell), for this I use arrayfun:
C = arrayfun(@ (x) (((a/length(Z))*(1/(2*pi))).*((abs(fftshift(fft(Z,1024))).^2))),1:480);
and I get this error:
Error using arrayfun Non-scalar in Uniform output, at index 1, output 1. Set 'UniformOutput' to false.
(Worth mentioning that I zeropad my fft, so the output data are all the same size(1*1024))
Réponses (1)
Azzi Abdelmalek
le 5 Nov 2013
Modifié(e) : Azzi Abdelmalek
le 5 Nov 2013
Add 'uniformoutput',false or 'un',0
C = arrayfun(@ (x) (((a/length(Z))*(1/(2*pi))).*((abs(fftshift(fft(Z,1024))).^2))),1:480,'un',0);
4 commentaires
Mona Mahboob Kanafi
le 5 Nov 2013
Azzi Abdelmalek
le 5 Nov 2013
Modifié(e) : Azzi Abdelmalek
le 5 Nov 2013
Change fft(Z,1024) by fft(x,1024)
C = arrayfun(@ (x) (((a/length(Z))*(1/(2*pi))).*((abs(fftshift(fft(x,1024))).^2))),1:480,'un',0);
Mona Mahboob Kanafi
le 5 Nov 2013
Azzi Abdelmalek
le 5 Nov 2013
Ok, then use cellfun
C = cellfun(@ (x) (((a/length(Z))*(1/(2*pi))).*((abs(fftshift(fft(x,1024))).^2))),Z,'uniformoutput',false);
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!