Ignore elements in an array.

4 views (last 30 days)
T
T on 16 Oct 2012
Hi. I am to plot Value vs. Time using the following data from a databasefile which I haven't included. But the output looks like the following:
Value =
0.4100
0.2500
0.3340
0
0.5500
0.6250
0.7500
0.3330
0
Time =
1.0e+003 *
3.4018
3.4431
3.4507
3.4563
3.4585
3.4684
3.4793
3.4819
3.5181
Value = []; % create a 0-by-0 matrix
Time = [];
for i = 1:k
ValueID = ValueList(i,n);
if ValueID > 0 % some Value id's are negative or zero - these are irrelevant
index = find(ismember(cell2mat(Table1(:,1)),ValueID)==1); % locates the index
Output = Table{index,2};
ValueList(i,5) = Output; % Takes values from 5th column in databasefile
ValueList(i,6) = 39.3700787*gwdWt; % convert from metres to inches and takes values from sixth row in databasefile
%else
end
Value = [Value;ValueList(i,6)] % structures value as a row.
Time = [Time; ValueList(i,2)]
end
So what I am asking is, how do I ignore the following
0 and 3.4563,
also
0 and 3.5181?
Is that clear?

Accepted Answer

Matt Kindig
Matt Kindig on 16 Oct 2012
Are Value and Time the same size? If so, you can just do this, using logical indexing (no loops):
deleteThese = (Value <= 0);
ValuesWithDeletions = Value(~deleteThese);
TimeWithDeletions = Time(~deleteThese);
  5 Comments
Matt Kindig
Matt Kindig on 16 Oct 2012
What is a "discrete" plot vs. a "continuous" plot, in this context? Do you just mean a plot with connected points (i.e. lines), as opposed to just markers? If so, you can easily turn off the line to display only the "discrete" points. Do something like this:
plot(Time, Value, 'b.')
T
T on 16 Oct 2012
Edited: T on 16 Oct 2012
Actually stairs(Time,Value) gave me what I wanted.
Can you respond to my other thread?

Sign in to comment.

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!