How to input a matrix of unknown dimensions into a function?

function avg_vals = function_name(A)
A = %This is where I'm confused
avg_vals = mean(A,2);
end
I'm trying to create a function that will accept a matrix (A) that contains an unspecified number of rows and columns. I want it to then average the rows (rather than columns) and return those values as a column vector. It could be that I'm approaching this from the totally wrong angle, so any advice is welcome.

 采纳的回答

A is an input argument passed from function call function_name(A). SO, DELETE THIS LINE from the beginning, you do not need to input A a second time :)
function avg_vals = function_name(A)
A = % and this is where I am truly confused. Delete this line
avg_vals = mean(A,2);
end
When you want to work with this function, use:
ex1.:
A=1:10; % This is a 1-D vector
function_name(A)
ex2.
A=magic(4); % This is a 2-D matrix
function_name(A)

3 个评论

I have tried entering values into the function that you suggest above, and it returns an "Unexpected MATLAB expression" error. Is it that I am entering them in the wrong format? In the command window I enter:
function_name(1 2 3; 4 5 6; 7 8 9)
To simulate a matrix that could feasibly be entered, and it returns the error message that I mentioned above.
EDIT: I tried entering in a single value, 1, into the function and it returned 1 as the average value. So it seems that my main issue is that this function will not accept a matrix of any size (nor a row or column vector).
A matrix is entered using the square brackets. So try this instead:
function_name([1 2 3; 4 5 6; 7 8 9])
Everything inside the [...] is treated as a single matrix.
That did the trick!
Thank you for your help!

请先登录,再进行评论。

更多回答(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