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

Versión 1.0.0 (1,16 KB) por Wan Ji
adding matrices inside cell array
16 descargas
Actualizado 12 jul 2021

Ver licencia

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

Citar como

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. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R2020a
Compatible con cualquier versión desde R2009a hasta R2020b
Compatibilidad con las plataformas
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!

symCellSum

Versión Publicado Notas de la versión
1.0.0