Is there a better way to use cellfun with arguments? and is it better than for-loop?
Show older comments
Hey,
When I use cellfun, with a function that has arguments, I use repmat function to duplicate my arguments. My question is, if there is a better way to do this.
Here is an example
Lets say that I have a cell array of matricies and I want to get the size of dimention 1 in each
%Create a cell array with random values
randVal = @(x) magic(randi(5,2))
cellArr = arrayfun(randVal, ones(10,1),'uniformOutput',false);
%Get the size of the first dimention of each element in the cell aray
sizes = cellfun(@size,cellArr,repmat({1},size(cellArr,1),1));
This is the part that I am asking about:
repmat({1},size(cellArr,1),1)
Is there a better way to do this?
And in general, is this better that using a for-loop ?
2 Comments
Rik
on 9 Sep 2021
How is what you want different from what Steven posted in his answer? It seems to me that is what you need. Using an anonymous function is a better way than replicating data.
ytzhak goussha
on 9 Sep 2021
Accepted Answer
More Answers (1)
Categories
Find more on Loops and Conditional Statements 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!