Making a Matrix calculator
古いコメントを表示
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 件のコメント
dpb
2025 年 3 月 26 日
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
2025 年 3 月 26 日
I don‘t see why you would need any WHILE loops for this: a cell array and FOR loops would likely be sufficient.
Ray
2025 年 3 月 26 日
Stephen23
2025 年 3 月 26 日
"I plan on using the while loops for if the user inputs something invalid"
Ray
2025 年 3 月 28 日
Ray
2025 年 3 月 28 日
Ray
2025 年 3 月 28 日
回答 (3 件)
Prasanna
2025 年 4 月 3 日
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
2025 年 11 月 29 日
0 投票
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
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!