3 d和2 d矩阵乘法的目标函数
6视图(30天)
显示旧的评论
我有一个3 d矩阵NxNxM和2 d B矩阵(NxN),将一个整数优化变量矩阵解算器。我想把A和B获得(NxNXM)矩阵。然后我需要和所有的元素产生的3 d矩阵。
我的目标函数如下:
ndesign = optimproblem (“目标”sum (a * B,“所有”));
我可以做这个乘法解决如果我不使用。然而,我收到以下错误当我把它放在目标函数:
错误使用optim.internal.problemdef.ElementwiseOperator / checkIsValid
论点尺寸1454 - 1454 - 50和1454 -,- 1454必须同意。
错误在optim.internal.problemdef.Times / checkIsValid
错误在optim.internal.problemdef.Times.getTimesOperator
错误在。
错误在networkdes(第290行)
ndesign = optimproblem (“目标”sum (a * B,“所有”));%建立优化问题
我还需要转换3 d矩阵稀疏的三维矩阵。我使用ndSparse库创建它,但是我又不能在目标函数中使用它。提前谢谢。
编辑
更多的解释。这是我的优化脚本:
一个=% (1454 x1454x50) 3 d矩阵
A_sparse = ndSparse(一个);
B = optimvar (“b”,长度(一),(A)],“类型”,“整数”,下界的0,“UpperBound”1);
ndesign = optimproblem (“目标”sum (a * B,“所有”));%建立优化问题
% ndesign = optimproblem(“目标”,总和(A_sparse。* B '所有'));%创建稀疏优化问题
ndesign.Constraints。const1 = (B(诊断接头(B)) = = 0);% B_ii = = 0
ndesign.Constraints。const2 =(和(B,“所有”)= = 20);
选择= optimoptions (“intlinprog”,“显示”,“关闭”,“PlotFcn”,@optimplotmilp);
[溶胶,fval exitflag、输出]=解决(ndesign,“选项”、选择);