Problem 44950. Calculate Inner Product
Given two input matrices, x and y, check if their inner dimensions match.
- If they match, create an output variable z which contains the product of x and y
- Otherwise, z should contain a custom string message
Example:
x = [1 2;3 4] y = [5;6]
z = [17;39]
x = [1 2 3;4 5 6] y = [2 5;3 6]
z = "Have you checked the inner dimensions?"
OR
z = "The inner dimensions are 3 and 2. Matrix multiplication is not possible"
-------------------------------------------------------------------------------------------------------------------------------------------------------------
NOTE - An example of combining numbers and strings together is shown below:
x = "The sum of " + 4 + " and " + 3 + " equals " + 7
x =
"The sum of 4 and 3 equals 7"
Solution Stats
Problem Comments
-
9 Comments
I solved this question with an if condition and the size of my solution was 39. I found the size of the leading solution to be 14. This is the leading solution: function ans = in_prod(x,y)
"no";
try
x*y;
end
How is this even correct? I tried to paste the same solution instead of mine and the assertion failed. z is not mentioned anywhere in this code. Can someone enlighten me?
If the output x*y is not assigned to any variable, MATLAB assigns it to the variable ans by default. In this solution, z has been replaced with ans in the function definition to return the unassigned output.
I am confused... this ought to work:
function z = in_prod(x,y)
if size(x,2) == size(y,1)
z = x * y
else
z = "The inner dimensions are " + size(x) + " and " + size(y) + ". Matrix multiplication is not possible"
end
This is dot product, not inner product, as the title suggests. They are not exactly the same.
I personally suggest substituting the title with 'dot product', as the description states.
What is wrong with this code? It's working on the downloaded version.
[xrow,xcol]=size(x);
[yrow,ycol]=size(y);
if xcol==yrow
z = x*y
else
z='Have you checked the inner dimensions?'
end
please help me,what is wrong with this code?fail the third test...
function z = in_prod(x,y)
if size(x,2)==size(y,1);
z=x*y
else
z=''Have you checked the inner dimensions'
end
end
Thank you
DO NOT use disp when printing the string for z, just use z = "string message". Otherwise even if your code is correct it will not complete the problem.
Solution Comments
Show commentsProblem Recent Solvers6183
Suggested Problems
-
2369 Solvers
-
5274 Solvers
-
Unique values without using UNIQUE function
294 Solvers
-
12264 Solvers
-
427 Solvers
More from this Author13
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!