Hi, I have a cell array that contain a number of different sized matrices. I need to multiply each of these cell elements, where the number of cells is not constant, with a single scalar value. Does anyone know how to do this? It does not work with the standard call of cellfun since the cells are of different size,
cellfun(@times,a,{2})
The reason is that I use matlab as an interface to create stuff to another program and I depending on what item I create I need to use different tones on the colormaps.

 채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2014년 2월 10일
편집: Azzi Abdelmalek 2014년 2월 10일

14 개 추천

yournumber=2;
a={[1 2 3],[2 5;6 8], [2 5 8 7]}
cellfun(@(x) x*yournumber,a,'un',0)

댓글 수: 4

Patrik Ek
Patrik Ek 2014년 2월 10일
Thanks, exactly what I was looking for
Can you explain the meaning of using 'un' and 0 at the end of this line please? Do I have to use it?
cellfun(@(x) x*yournumber,a,'un',0)
Andrew Bliss
Andrew Bliss 2016년 8월 4일
편집: Andrew Bliss 2016년 8월 4일
'un',0 is a shorthand way of writing 'UniformOutput',false See the help for what that means - in essence it will make cellfun output a cell rather than an array.
swenia
swenia 2020년 2월 4일
편집: swenia 2020년 2월 4일
This is very helpful, thanks. Follow-up question: what if I'd like to multiply each cell element with a different number stored in a vector?
For instance:
a = {[1 2; 3 4], [5 6; 7 8]}
b = [0;1]
I'd like to multiply a and b such that the result will be:
ans = {[0 0; 0 0], [5 6; 7 8]}

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Structures에 대해 자세히 알아보기

질문:

2014년 2월 10일

편집:

2020년 2월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by