i need to delete a zero from a single row 10 column vector

2 Ansichten (letzte 30 Tage)
how can i delete this first 0
1.0e+03 *
0 1.0794 0.9376 0.8301 0.7477 0.6838 0.5939 0.5366 0.4988 0.4732
so it would look like this
1.0e+03 *
1.0794 0.9376 0.8301 0.7477 0.6838 0.5939 0.5366 0.4988 0.4732

Akzeptierte Antwort

Stephan
Stephan am 28 Apr. 2019
A = [0 1 2 3 0 5]
A = A(A~=0)
  3 Kommentare
madhan ravi
madhan ravi am 28 Apr. 2019
Bearbeitet: Image Analyst am 28 Apr. 2019
To delete the first zero entry ONLY:
A(find(A==0,1,'first'))=[];

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Image Analyst
Image Analyst am 28 Apr. 2019
Bearbeitet: Image Analyst am 28 Apr. 2019
To delete only the FIRST zero (not all zeros) here is one way.
indexes = find(v == 0);
if ~isempty(indexes) % Only try to delete if we actually FOUND a zero!
v(indexes(1)) = []; % Do the deletion.
end
  2 Kommentare
madhan ravi
madhan ravi am 28 Apr. 2019
Bearbeitet: madhan ravi am 28 Apr. 2019
v(indexes(1) = []; % Do the deletion.
^--- missed a paranthesis
Image Analyst
Image Analyst am 28 Apr. 2019
You're right - thanks - fixed.

Melden Sie sich an, um zu kommentieren.


dpb
dpb am 28 Apr. 2019
As we've covered the other cases pretty thoroughly...
For the specific input vector OP showed where it is almost certain it is known a priori the first value in the array is zero from outside knowledge of what created the vector in the first place, simply
A=A(2:end);

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by