Matrix Multiplication column and vector

3 views (last 30 days)
Hi,
I am trying to solve this problem:
A is 1 column of 100k results; B is a vector of 10 weights; I need a matrix of 10 columns and 100k rows:
[(result line 1)*W1 (result line 1)*W2 (result line 2)*W1 (result line 2)*W2 ...
Thank you very much,
  1 Comment
Torsten
Torsten on 3 Aug 2015
I don't understand the logic behind
[(result line 1)*W1 (result line 1)*W2 (result line 2)*W1 (result line 2)*W2 ...
Could you explain ?
Best wishes
Torsten.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 3 Aug 2015
A is 1 column of 100k results; W is a vector of 10 weights;
A(:)*W(:).'
  1 Comment
Alexandra
Alexandra on 3 Aug 2015
Thanks, it worked! Could you help me on just one more operation?
So now I have a 100k*10 matrix. I also have a 10*1 matrix of target values for each weighted result.
So, i am trying to evaluate how many values in the first column of 100k*10 are bellow the first value in the vector, and by how much. Next, how many values in the second column are bellow the second number and by how much. Therefore I am trying to get a 10*1 vector of number of cases bellow target for each target and a 100k*10 matrix of the difference to target. I written this: A = zeros(size(100k*10 matrix)); n = numel(A); for k=1:n if 100k*10 matrix < OBJECTIVO A = OBJECTIVO - 100k*10 matrix; else A = 0; end end PA = (n - sum(A == 0))/n; But get the same error Error using < Matrix dimensions must agree.
Thanks a lot

Sign in to comment.

More Answers (1)

Lukas Bystricky
Lukas Bystricky on 3 Aug 2015
Try
B*A
where A is a row vector and B is a column vector (you may need to transpose them to get them in this form). That will give a matrix with length(B) rows and length(A) columns.
  2 Comments
Alexandra
Alexandra on 3 Aug 2015
I tried: Error using * Inner matrix dimensions must agree.
Lukas Bystricky
Lukas Bystricky on 3 Aug 2015
Edited: Lukas Bystricky on 3 Aug 2015
The first vector has to be a column vector and the second a row vector, otherwise the multiplication isn't defined. You can turn a row vector into a column vector (or vice versa) by using
A = A'
for example.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!