384 views (last 30 days)
priyanka on 2 Oct 2014
Commented: Vansh on 23 Mar 2023
I am taking inputs from user to enter row n column and adding two matrix. But the output i am getting is of different dimension. please tell me what is the problem in given code.
m = input('Enter number of rows: ');
n = input('Enter number of columns: ');
for i = 1:m
for j = 1:n
str = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
T(i,j) = input(str);
end
end
%a = input('Enter number of rows: ');
%b = input('Enter number of columns: ');
strn = ['Enter elements for matrix S']
for i = 1:m
for j = 1:n
strn = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
S(i,j) = input(strn);
end
end
for i=1:m
for j=1:n
C(i,j)=0;
end
end
C(i,j)=0
for i= 1:m
for j=1:n
C(i,j)= T(i,j)+ S(i,j)
end
end
Vansh on 23 Mar 2023
Thanks for sharing!

dpb on 2 Oct 2014
The problem is the line
C(i,j)=0
after the loop that creates the zero-filled array--when done, the i,j indices are one greater than the loop limit so this sets the element at C(m+1,n+1) to zero. Matlab automagically creates a full array of that size so the end result is always going to be one larger than the inputs in each direction.
Simply remove this line--it's not needed.
I presume you're doing this this way as a pedagogical exercise and realize all of these loops can be eliminated?
Also, I'd suggest adding the semicolon to the following line and then using
C(i,j)= T(i,j)+ S(i,j)
disp(C)
at the end. Perhaps you were simply echoing output to command window for debugging, however.

priyanka on 2 Oct 2014
Thank you.

Nalini Vishnoi on 2 Oct 2014
Since MATLAB allows matrix manipulations directly, you can add 2 matrices A and B of the same size using a single line of code:
C = A + B;
and this should provide you with the desired result.
MRUTUNJAY on 17 Oct 2022
NICE STEP
VINEET THAKUR on 24 Oct 2022
Sometimes in learning we forced to not use build-in functions, so it's a good code.