# Arrays have incompatible sizes for this operation error

2 ビュー (過去 30 日間)
Azime Beyza Ari 2022 年 4 月 8 日

Hello i am working on an optimization problem where i have 2 dec. variables x and y. x is a matrix with dimensions 36x36 and y is 36x1. my objective function only uses one of the variables which is x. but since my number of variables is 1332= (1296 +36). Now my objective function gives this error. Arrays have incompatible sizes for this operation error.
Here is my objective function looks like ;
function z = objectivefunc(x,rij,ai)
z= (-1)*sum(x.*rij.*ai,'all');
end
rij and ai are my parameters. (rij 36x36, ai 36x1 ).

サインインしてコメントする。

### 回答 (2 件)

Alan Weiss 2022 年 4 月 8 日
It looks like the issue is that ai is not 36-by-36. You probably want something like
ai = repmat(ai,1,36);
z= (-1)*sum(x.*rij.*ai,'all');
Alan Weiss
MATLAB mathematical toolbox documentation
##### 1 件のコメント表示非表示 なし
Azime Beyza Ari 2022 年 4 月 8 日

No it did not solve the problem. I think problem is casued because this;
my x variables are 1296
and since i have another variable called y which hase 36 variables. i wrote nvars as 1332. after i write it 1332 it gives that error. Before i introduced the second variable i did not get any erorrs like that before.
I will attach the file. if you cna have look i would be happy.

サインインしてコメントする。

Alan Weiss 2022 年 4 月 8 日
You are mixing up the two approaches, problem-based and solver-based. You cannot do that. You have x and y defined as optimization variables. That is fine. You cannot call ga on a problem with optimization variables; you have to call solve.
Also, I am not familiar with prob2matrices. Did you mean prob2struct? In any case, I think that you should stick with the problem-based approach in order to keep the variables x and y separated, not shoved together into one long, hard-to-understand variable.
Alan Weiss
MATLAB mathematical toolbox documentation
##### 2 件のコメント表示非表示 1 件の古いコメント
Azime Beyza Ari 2022 年 4 月 8 日

Instead of using prob2matrices, if i write my constraints like following, would the error go away (Also since x's all have the same name and there are 1296 of them it think i would be very hard for me to write them in this way) ? or are there any other problems causing it? ;

サインインしてコメントする。

### カテゴリ

Find more on Choose a Solver in Help Center and File Exchange

R2021b

### Community Treasure Hunt

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

Start Hunting!

Translated by