Making a Matrix calculator
Show older comments
I would like to make a calculator that would ask the user for the number of matrices involved, and then add, subtract, divide, or multiply said matrices. After some digging around, I think I could use while loops, and some switch/case loops to pull this off. I am wondering if this would be the best way to approach this, or if there were some other loops I might not have considered that could help me out. Any advice or suggestions would be appreciated.
9 Comments
dpb
on 26 Mar 2025
Whatever you do, do NOT create the input arrays as sequentially-numbered variables like M1, M2, ..., etc.
Use structures or cell arrays or other higher abstraction data that can be manipulated without having to resort to evil eval
It's unfortunate that Mathworks didn't let plus, + have a variable number of arguments; then one could just call it with a list, but it and its brethren are limited to two arguments only.
Stephen23
on 26 Mar 2025
I don‘t see why you would need any WHILE loops for this: a cell array and FOR loops would likely be sufficient.
Ray
on 26 Mar 2025
Stephen23
on 26 Mar 2025
"I plan on using the while loops for if the user inputs something invalid"
Ray
on 28 Mar 2025
Ray
on 28 Mar 2025
Ray
on 28 Mar 2025
Answers (3)
Prasanna
on 3 Apr 2025
For Matrix Calculator, try this IF ELSE Case.
Take this example. It might be helpful for you.
a = input('Enter First Matrix: ');
b = input('Enter Second Matrix: ');
out = input('Operation to do: '); % ADD = 1/SUBTRACT = 2/MULTIPLY = 3/DIVIDE = 4
if out == 1
output_add = a+b
elseif out == 2
output_subtract = a-b
elseif out == 3
output_product = a*b
elseif out == 4
output_divide = a/b
else
fprintf('No proper input')
end
If you’re just starting out with MATLAB and want a solid foundation, I recommend first completing the MATLAB Onramp course. It offers a great introduction to MATLAB basics and will help you feel more comfortable working with the environment.
To help build your matrix calculator, here are some useful resources to guide you:
- The official documentation on the 'input' function explains how to ask users for input and perform validation to ensure the data entered is correct.
- https://www.mathworks.com/help/matlab/ref/input.html?requestedDomain=
- For a clear overview of fundamental matrix operations such as addition, subtraction, and multiplication, refer to the MATLAB guide on matrix operations.
- https://www.mathworks.com/help/matlabmobile/ug/matrix-operations.html
- To understand the differences between element-wise operations and matrix operations (for example, the distinction between * and .*), check the page comparing array and matrix arithmetic.
- https://www.mathworks.com/help/matlab/matlab_prog/array-vs-matrix-operations.html
- Lastly, there is a resource detailing all matrix arithmetic operators and how to use them properly.
- https://www.mathworks.com/help/simulink/matrix-operations.html
- Additionally, if you want to learn about element-wise multiplication
- https://www.mathworks.com/help/matlab/ref/double.times.html
Hope this helps!
ali
on 29 Nov 2025
0 votes
can we change it a little bit. you can totally build your matrix calculator without drowning in while-loops and switch-cases. The big thing is: don’t make variables like M1, M2, M3…Just throw all your matrices into a cell array and loop through them — way cleaner and way less headache.
Use a while loop only when the user screws up the input, like entering -1 for rows. That’s fine. But for the actual matrix operations, a simple for-loop is all you need.
So the flow is basically: ask how many matrices they want, store them in a cell array, then run whatever operation they chose across that list. MATLAB doesn’t let you do multi-argument A + B + C + D, so you just start with the first matrix and keep stacking the operations in a loop.
Here:
result = matrices{1};
for i = 2:numMatrices
result = result + matrices{i}; % or -, *, /
end
Categories
Find more on Loops and Conditional Statements 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!