フィルターのクリア

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 ビュー (過去 30 日間)
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 件のコメント
Christopher Wolfe
Christopher Wolfe 2021 年 9 月 12 日
The returns are denoted in this line rets = log(price(2:end,:)./price(1:end-1,:));
Ive J
Ive J 2021 年 9 月 12 日
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

サインインしてコメントする。

回答 (1 件)

Walter Roberson
Walter Roberson 2021 年 9 月 12 日
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 件のコメント
Christopher Wolfe
Christopher Wolfe 2021 年 9 月 12 日
Column 1 is the index return for that day

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by