Error using arrayfun : Non scalar in Uniform output
109 views (last 30 days)
Show older comments
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))
0 Comments
Answers (1)
Azzi Abdelmalek
on 5 Nov 2013
Edited: Azzi Abdelmalek
on 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 Comments
Azzi Abdelmalek
on 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);
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!