Matrix basic operation error
5 views (last 30 days)
Show older comments
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
Steven Lord
on 8 May 2017
This behavior is known as implicit expansion and was added to the arithmetic operators like + in release R2016b.
Accepted Answer
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
More Answers (2)
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 .
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!