Clear Filters
Clear Filters

How do I display only positive numbers from a matrix, i.e column 1 has to be positive to display the corresponding 3 columns of data?

21 views (last 30 days)
I have column 1 which shows the index returns for each day, the next 3 columns are stock price returns from the corresponding day. There are currently days displaying a negative return for the index and the 3 stock prices next to it. I want to code that I only want to display the positive index returns and the corresponding stock prices of that same day.
  2 Comments
Ive J
Ive J on 12 Sep 2021
A = [randi([-10 10], 4, 1), randi([20 100], 4, 3)]
A = 4×4
3 20 63 45 -6 20 45 45 -6 33 54 80 10 99 48 61
idx = A(:, 1) > 0; % positive indices only
newA = A(idx, :)
newA = 2×4
3 20 63 45 10 99 48 61

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 12 Sep 2021
mask = find(rets >= 0);
prets = rets(mask);
pprice = price(mask+1,:);
rets(K) is calculated based upon both price(K+1,:) and price(K,:) so it is not clear which of the two days you would want to have displayed. Here I chose to have it associated with the second day rather than the first.
  3 Comments

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!