Hello,
I have a table of annual quarters as row names and the dates those quarters began as a variable. I'm trying to create a command where given a quarter (R) I can lookup the quarter start date. I've read the documentation and searched for answers here, but am very lost so I'd appreciate any help!
Quarter = {'Q12019'; 'Q22019'; 'Q32019'; 'Q42019'; 'Q12020'; 'Q22020'; 'Q32020'; 'Q42020'};
QuarterStartDate = ['2019-01-01'; '2019-04-01'; '2019-07-01'; '2019-10-01'; '2020-01-01'; '2020-04-01'; '2020-07-01'; '2020-10-01'];
T = table(QuarterStartDate, 'RowNames', Quarter);
R = 'Q32019';
S = T(Quarter == 'R')
I was able to do something similar earlier that worked, but that was using numbers rather than characters. I tried doing the same thing, but that didn't work.
C = [ .80 ; .85 ; .90 ; .95];
P = [.55 ; .49 ; .44 ; .44];
T = table(C, P);
R = 0.95;
S = T{C == R, 2};
Thanks!

댓글 수: 5

dpb
dpb 2019년 11월 29일
Help us out by attaching a (smallish) section of the table as .mat file...
Ivan Glinski
Ivan Glinski 2019년 11월 29일
Just attached to my post! I just ran the first three lines of the code I shared.
S = T(strcmp(T.Quarter,'R').QuarterStartDate;
Ivan Glinski
Ivan Glinski 2019년 11월 30일
편집: Ivan Glinski 2019년 11월 30일
Thanks for your help!
After adding a parenthesis at the end to close the command around T, I get an error:
"Unrecognized variable name 'Quarter'."
Quarter is the row name, not a variable. If I change it so that Quarter is a variable in the table, I get the following error:
"Error: Functions cannot be indexed using {} or . indexing."
Image Analyst
Image Analyst 2019년 11월 30일
Try T.QuarterStartDate instead of T.Quarter.

댓글을 달려면 로그인하십시오.

 채택된 답변

Stephan
Stephan 2019년 11월 30일
편집: Stephan 2019년 11월 30일

1 개 추천

Quarter = {'Q12019'; 'Q22019'; 'Q32019'; 'Q42019'; 'Q12020'; 'Q22020'; 'Q32020'; 'Q42020'};
QuarterStartDate = ['2019-01-01'; '2019-04-01'; '2019-07-01'; '2019-10-01'; '2020-01-01'; '2020-04-01'; '2020-07-01'; '2020-10-01'];
T = table(QuarterStartDate, 'RowNames', Quarter);
R = 'Q32019';
S = T(R,:)
results in:
S =
table
QuarterStartDate
________________
Q32019 2019-07-01
if you need only the content use curly braces:
S = T{R,:}
S =
'2019-07-01'

댓글 수: 1

Ivan Glinski
Ivan Glinski 2019년 11월 30일
It works, thank you!! I sort of can't believe the solution was this simple, but I'm still learning to think in Matlab terms.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

릴리스

R2018b

태그

질문:

2019년 11월 29일

댓글:

2019년 11월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by