add all the same-sized symbol matrices in a cell array

Version 1.0.0 (1.16 KB) by Wan Ji
adding matrices inside cell array
16 Downloads
Updated 12 Jul 2021

View License

Actually, the same-sized numeric matrices in a cell array can be easily summarized by using
% Create dummy input
c = {[1 2; 3 4], [3 3; 1 1]}
c =
[2x2 double] [2x2 double]
% Elementwise sum across matrices (only if ALL matrices have same size)
sum(cat(3,c{:}),3)
ans =
4 5
4 5
However, it does not work for symbol matrices in a cell.
syms x
q = [x,2*x,3*x;sin(x),cos(x),tan(x);exp(x),2^x,log(x)];
c = arrayfun(@(i)q,(1:10)',...
'UniformOutput' ,false);
sum(cat(3,c{:}),3)
错误使用 symengine
Arguments must be 2-dimensional.
出错 sym/privUnaryOp (line 1036)
Csym = mupadmex(op,args{1}.s,varargin{:});
出错 sym/sum (line 85)
s = privUnaryOp(A, 'symobj::prodsumdim', num2str(dim), '_plus');
Here the function is used for this purpose. Although matlab fixed the bug in 2021a and later.
We have
b = symCellSum(a)
And then the answer is obtained
b =
[ 10*x, 20*x, 30*x]
[ 10*sin(x), 10*cos(x), 10*tan(x)]
[ 10*exp(x), 10*2^x, 10*log(x)]
Enjoy for whose matlab version lower than 2020a

Cite As

Wan Ji (2024). add all the same-sized symbol matrices in a cell array (https://www.mathworks.com/matlabcentral/fileexchange/95728-add-all-the-same-sized-symbol-matrices-in-a-cell-array), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2020a
Compatible with R2009a to R2020b
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!

symCellSum

Version Published Release Notes
1.0.0