I need help creating a function for taking an array and reversing it and i have to use a for loop. I have looked online but i really dont know what i am doing?

3 views (last 30 days)
nick sorge
nick sorge on 12 Feb 2015
Commented: Evan on 13 Feb 2015
function result = reverse_array(array)
result = array;
for(index = zero(1,length(array)))
index = reverse_array(index) = array(length(array)-index+1);
end
end

Answers (1)

Evan
Evan on 12 Feb 2015
Edited: Evan on 12 Feb 2015
There are built-in functions for this, such as fliplr and rot90.
However, if you want to use a loop, think about the process you want to do, step-by-step. You want to create a new array that is a flipped version of an array you send into the function. So you want to access each element of the array in reverse, from end to beginning, and assign it to your new array, from beginning to end.
function y = flip_array(x)
n = ?
x_indices = ?
for y_index = 1 : n
x_index = x_indices(y_index);
y(y_index) = x(x_index);
end
end
You just need to find a a value n that tells you how long your new array is going to be, then an array of x indices that gives you want you want. Think about how the colon ( : ) operator can be used, and remember that you can use it to create arrays that count up or down.
  3 Comments
Evan
Evan on 13 Feb 2015
n tells you how many iterations the loop goes through. You need to pass over each element in your array, however long it is. So n isn't the array itself, but information about that array. You need some function (a builtin matlab function) that will get you this information.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by