Save sub-matrix column and row in another matrix

I have a 2D array with 4 column and many rows.
Month Day Year Value
xx xx xxxx xxx.xxxx
I want to enter the year from keyboard then save in an other matrix all the rows (month, day,year,value info) that contain the year from the input I entered. I've tried this
for idx = 1:numel(array)
element = array(idx);
if(element == month)
..... "Don't know how to do..."
end
end
thank you in advance

 採用された回答

KL
KL 2017 年 10 月 22 日
編集済み: KL 2017 年 10 月 23 日

1 投票

your_result = your_array(your_array(:,3)==your_choice_year,:);
but an efficient way to store such data is to use a table.
To create a table,
T = array2table(your_array, 'v',{'month','day','year','val'})
to extract year,
res = T(T.year==your_choice,:)
same goes for month or day

1 件のコメント

giasco
giasco 2017 年 10 月 23 日
I'm working with tables now. Is it possible to extract month and year at the same time?
Something like
res = T(T.year==1995,:) & T(T.month==1,:)

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

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2017 年 10 月 22 日
編集済み: Andrei Bobrov 2017 年 10 月 22 日

1 投票

Let a - your array [Month Day Year Value]
out = a(a(:,3) == input_year,:);

1 件のコメント

giasco
giasco 2017 年 10 月 23 日
It works great. And if I want to extract month and year ?

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

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2017 年 10 月 22 日

コメント済み:

2017 年 10 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by