필터 지우기
필터 지우기

How can I read the elements of an array backwards?

조회 수: 108 (최근 30일)
Konstantinos
Konstantinos 2016년 5월 18일
답변: Johannes Kalliauer 2021년 4월 19일
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.

채택된 답변

Ahmet Cecen
Ahmet Cecen 2016년 5월 18일
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
Stephen23
Stephen23 2016년 5월 18일
The problem is not the end, it is the pks3(1). What value does pks3(1) have?
Konstantinos
Konstantinos 2016년 5월 18일
편집: Konstantinos 2016년 5월 18일
pks3(1) = 2.3937e+08

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Johannes Kalliauer
Johannes Kalliauer 2021년 4월 19일
a horizontal vector can be fliped using fliplr
x=1:4
x=fliplr(x)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by