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?

 Réponse acceptée

Cedric
Cedric le 13 Avr 2013
Modifié(e) : Cedric le 13 Avr 2013
You want to use an element-by-element operator for the division:
m = (y1 - y2)./(x1 - x2);

2 commentaires

Interesting.
Cedric
Cedric le 13 Avr 2013
Modifié(e) : Cedric le 13 Avr 2013
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).

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by