Matrix basic operation error

5 views (last 30 days)
Maryada Maryada
Maryada Maryada on 8 May 2017
Commented: Steven Lord on 8 May 2017
I have following code A =
1 1 1
2 2 2
3 3 3
m =
2 4 6
and I am calculating A + m
And I am getting error
Error using + Matrix dimensions must agree
What is wrong in my code.
  4 Comments
Torsten
Torsten on 8 May 2017
Edited: Torsten on 8 May 2017
m must be a column vector:
m = [2;4;6]
Best wishes
Torsten.
Steven Lord
Steven Lord on 8 May 2017
This behavior is known as implicit expansion and was added to the arithmetic operators like + in release R2016b.

Sign in to comment.

Accepted Answer

KL
KL on 8 May 2017
For the "edited" question,
A =[1 1 1
2 2 2
3 3 3]
m =[2 4 6]
c = bsxfun(@plus,A,repmat(m,3,1))
  3 Comments
Jan
Jan on 8 May 2017
@KL: If you use bsxfun, you can omit the repmat.
KL
KL on 8 May 2017
oh yes, that's right, thanks Jan!

Sign in to comment.

More Answers (2)

Jan
Jan on 8 May 2017
Edited: Jan on 8 May 2017
In modern (>= 2016b) Matlab versions use:
A = [1 1 1; ...
2 2 2; ...
3 3 3];
m = [2 4 6];
A + m
For older Matlab versions:
bsxfun(@plus, A, m)

KL
KL on 8 May 2017
If you enter your code on your command window,
>> a = [1 2 3 4]
b = [5; 6; 7]
you would see
a =
1 2 3 4
b =
5
6
7
which mean 'a' has 1 row and 4 columns and 'b' has 1 column and 3 rows. Basically if you want to add two matrices, they should be of same size so you can add the corresponding elements to produce a resultant matrix of the same dimension. For example,
a = [1 2 3]
b = [5 6 7]
here, this gives you
a =
1 2 3
b =
5 6 7
both 'a' and 'b' have 1 row and 3 columns. If you add them like you did in your question
>> c = a+b
then you will get
c =
6 8 10
each value of 'c' is simply the sum of corresponding elements in 'a' and 'b'. If you want to do matrix multiplication, it's a little more complicated so I'd suggest you ask another question or simply have a read here .
  1 Comment
Maryada Maryada
Maryada Maryada on 8 May 2017
I want to add m to each row of A result should be
3 5 7
4 6 8
5 7 9

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!