How can I read the elements of an array backwards?
121 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Konstantinos
am 18 Mai 2016
Beantwortet: Johannes Kalliauer
am 19 Apr. 2021
I have an array with x = 250000 elements. I want the code to read backwards a part of it:
k = pks3(1):-1:1;
%read data points backwards starting from pks3 and ending at the beginning
So even though I have i = 10 pks3 peak points, I want to create an array k from the first point pks3(1). But, the problem is that in the end I get k = 255997855 elements, in which the pks3 point for example is repeated for several hundreds of times. The rest of the code is this:
k = pks3(1):-1:1;
%read data points backwards starting from pks3 ending to pks3 again.
first = k(k<xfb1); % find all k such that k is smaller than xfb1
if ~isempty(first)
first = first(1); %store the first number which is smaller than xfb1
else
disp('No value of k is smaller than xfb1.')
end
distQ = length(first:pks3(1));
Qstart = locs_RwaveB(1)*distQ; %distance from locs_RwaveB to Qstart point
What am I doing wrong?
Thanks.
0 Kommentare
Akzeptierte Antwort
Ahmet Cecen
am 18 Mai 2016
It appears to me that you are trying to do something very simple in a very convoluted way, probably due to programming practices in another language.
If you need to read x in reverse order, assuming x is a column vector simply do:
x = flipud(x); % flips the vector.
And now you can access it in forward order.
6 Kommentare
Stephen23
am 18 Mai 2016
The problem is not the end, it is the pks3(1). What value does pks3(1) have?
Weitere Antworten (1)
Johannes Kalliauer
am 19 Apr. 2021
a horizontal vector can be fliped using fliplr
x=1:4
x=fliplr(x)
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!