Matlab array multiplication between numeric and variable array

1 Ansicht (letzte 30 Tage)
qi=sym('qi',[1 3]); %define variables q1, q2, q3
prompt = 'enter which point in time you want to find inventory level'; %%user input for time range. ex: 0:6
j = input(prompt)
prompt = 'enter how many basic delivery cycles inventory of item should delivered to retailer i'; %user input for delivery cycles of three retailers ex: [1 2 3]
fri = input(prompt)
p = j
L = bsxfun(@rdivide,j(:),fri) %%find xij matrix which retailer orders at which point. in Xij matrix, 1 means retailer place order and 0 means there is no order from retailer.
R = mod(L,1)
Xij = R <= 0 % print Xij matrix with 1 and 0. three columns for three retailers
B = Xij.*qi % multiplication of Xij with [q1 q2 q3], and i got error message for this matrix as below
if true
>> optimize_vendor
Dr =
[ 1, 2, 3]
M =
6
enter which point in time you want to find inventory level [0:6]
j =
0 1 2 3 4 5 6
enter how many basic delivery cycles inventory of item should delivered to retailer i [1 2 3]
fri =
1 2 3
p =
0 1 2 3 4 5 6
L =
0 0 0
1.0000 0.5000 0.3333
2.0000 1.0000 0.6667
3.0000 1.5000 1.0000
4.0000 2.0000 1.3333
5.0000 2.5000 1.6667
6.0000 3.0000 2.0000
R =
0 0 0
0 0.5000 0.3333
0 0 0.6667
0 0.5000 0
0 0 0.3333
0 0.5000 0.6667
0 0 0
Xij =
7×3 logical array
1 1 1
1 0 0
1 1 0
1 0 1
1 1 0
1 0 0
1 1 1
Error using symengine
Array sizes must match.
Error in sym/privBinaryOp (line 973)
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in .* (line 294)
X = privBinaryOp(A, B, 'symobj::zip', '_mult');
Error in optimize_vendor (line 24)
B = Xij.*qi
end
Till Xij matrix my code is working perfectly. i need help to multiply Xij array with [q1 q2 q3] array which means first column of Xij with q1, second column with q2 and third column with q3. and finally i need to get sum of each row by variables. ex: q1+q2+q3
  3 Kommentare
Mohamed Musni
Mohamed Musni am 23 Jan. 2018
Bearbeitet: Mohamed Musni am 23 Jan. 2018
that is my problem. i want to define qi in a array such as [q1 q2 q3] and multiply with Xij. i try to define like this qi=sym('qi',[1 3]); and it wont create the array
Birdman
Birdman am 23 Jan. 2018
Have you checked my answer?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Birdman
Birdman am 23 Jan. 2018
i try to define like this i=sym('qi',[1 3]); and it wont create the array
Try it as follows:
syms q1(i) q2(i) q3(i)
q=[q1 q2 q3]
  3 Kommentare
Birdman
Birdman am 23 Jan. 2018
This works for this example, but for a larger dataset, it will not be efficient.
Mohamed Musni
Mohamed Musni am 23 Jan. 2018
yeah thank you for guiding me yesterday and today. just finished my mathematical modelling in matlab. i owe you alot

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by