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
11 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers8288
Suggested Problems
-
Getting the indices from a vector
11765 Solvers
-
Longest run of consecutive numbers
6435 Solvers
-
556 Solvers
-
1029 Solvers
-
612 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!
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.
Why adding z=[]; after z="Have you....?" is failing in Test case?
This is grossly misleading for aspiring linear algebra students. The product calculated in this example is called a "matrix multiplication product", not a "inner product". The "inner product" is a generalization of the dot product.