Can't get function to accept array params or return arrays

Consider this function to calculate the slope of a line:
function [m] = f_GetSlope(x1, y1, x2, y2)
m = (y1 - y2)/(x1 - x2);
It works with scalar inputs. But I want to call it like so:
aX1 = [1, 23];
aY1 = [1, 12];
aX2 = [2, 8];
aY2 = [2, 0];
m1 = f_GetSlope(aX1, aY1, aX2, aY2)
Ideally it would return:
m1 = 1 0.800
In actuality:
m1 = 0.8009
Just one return value, and not correct for either set of inputs.
What am I doing wrong?

 采纳的回答

You want to use an element-by-element operator for the division:
m = (y1 - y2)./(x1 - x2);

2 个评论

Yes, some operators have a mathematical definition when applied on matrices that is different from the element-wise type of operations.
The most typical case is probably the matrix multiplication * (performed according the the mathematical def. of matrix multiplication), which is completely different from the element-wise multiplication .* (multiplication element-by-corresponding-element between two arrays with same size).

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by