Basic math operations on contents of a cell array
이전 댓글 표시
Is there any reason why basic math operations don't work with cell arrays? Seems to me it would extremely useful and efficient if you could do the following:
C = [0.7152 1.0000];
A = [0.6807 0; 0 1.0000];
Apows = {A,A^2,A^3};
C*Apows
Result:
Undefined operator '*' for input arguments of type 'cell'.
Expected:
{C*Apows{1},C*Apows{2},C*Apows{3}} =
1×3 cell array
{1×2 double} {1×2 double} {1×2 double}
cellfun(@(x) C*x,Apows,'UniformOutput',false);
ans =
1×3 cell array
{1×2 double} {1×2 double} {1×2 double}
채택된 답변
추가 답변 (1개)
James Tursa
2020년 11월 4일
1 개 추천
I suppose only TMW could give you their reasons for not implementing numeric operations on cell arrays. Maybe they simply didn't want to expend the effort when cellfun( ) would suffice.
One other option for you is to stack your matrices in a single array:
Apows = cat(3,A,A^2,A^3);
Then you can use a variety of options for doing the page matrix multiplies:
pagemtimes (R2020b)
Some options from the FEX:
MULTIPROD:
MTIMESX: (C-mex code requiring C compiler) needs updated build routine for later MATLAB versions
MMX: (C-mex code requiring C compiler)
카테고리
도움말 센터 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!