Effacer les filtres
Effacer les filtres

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 vues (au cours des 30 derniers jours)
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 commentaires
Christopher Wolfe
Christopher Wolfe le 12 Sep 2021
The returns are denoted in this line rets = log(price(2:end,:)./price(1:end-1,:));
Ive J
Ive J le 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

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 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 commentaires

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by