matlab - matlab:沿未使用的维度添加符号矩阵
问题描述
如何将单元格数组中收集的符号矩阵沿未使用的维度求和?假设出于本文范围之外的原因,矩阵必须是元胞数组的元素,而不是高维矩阵的平面。以下是该问题的简要说明。
假设我们有一个二维sym
向量元胞数组,准备如下:
a = vpa(ones(2,2));
c = {a; 2*a; 3*a};
尽管可以使用较新版本的 matlab(例如 )制作多维符号矩阵,但沿第三维sym('c', [2 2 2])
添加 2D矩阵失败sym
sum(cat(3, c{:}), 3)
Error using symengine
Arguments must be 2-dimensional.
使用数字输入,操作成功:
a = ones(2,2);
c = {a; 2*a; 3*a};
sum(cat(3,c{:}), 3)
6 6
6 6
编辑:
事实上,多维加法的问题比我想象的更普遍:sum
不能应用于sym
任何维数大于 2 的矩阵。
a=vpa(ones(2,2));
sum(a,1)
[ 2.0, 2.0]
sum(a,2)
2.0
2.0
a = vpa(ones(2,2,2));
sum(a,1) % fails
sum(a,2) % fails
sum(a,3) % fails
沿第三维手动添加平面是可行的,因此可以选择迭代添加,但sum
更可取:
a=vpa(ones(2,2,2));
plus(a(:,:,1), a(:,:,2))
[ 2.0, 2.0]
[ 2.0, 2.0]
编辑#2:
根据此页面,该问题显然是不可避免的,因为明确不提供对维度> 2的支持。
与 MATLAB® sum 不同,符号 sum 函数不适用于多维数组。有关详细信息,请关注 MATLAB sum 页面。
尽管如此,仍然欢迎有关替代方案的建议。
解决方案
推荐阅读
- javascript - 在 Javascript 中转换对象格式
- r - 将 dateRangeInput 恢复为空
- java - 如何将 String 转换为从 sqlite 获取的 Uri 并在 ImageView 中设置?
- python - 如何从视觉采集卡访问数据到 opencv?
- excel - 将表单 DB 复制到 Excel 时出现 Excel 日期格式问题
- ember.js - Ember 数据:何时使用 findAll() 而不是 query()?
- django - 如何修复 Django:没有返回 HttpResponse 对象。它返回 None 而不是?
- angular - 使用“ng generate library”时,什么是 Angular“Library”?
- asp.net - Qlikview 身份验证请求被阻止,因为它是一个跨域请求
- django - 编辑现有表单的表单不保存并重定向到错误。姜戈