Multiply a cell array with a scalar

조회 수: 59 (최근 30일)
Patrik Ek
Patrik Ek 2014년 2월 10일
편집: swenia 2020년 2월 4일
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일
yournumber=2;
a={[1 2 3],[2 5;6 8], [2 5 8 7]}
cellfun(@(x) x*yournumber,a,'un',0)
  댓글 수: 4
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개)

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by