Hello,
I am trying to create a histogram. I used a .mat file to create a 1x5000 structure. I am trying to plot only 1000 out of the 5000, so I call 'a' and set the length to 1000 in a for loop, but it says it is only plotting one data point instead of them all. Any idea what I am doing wrong? Thanks!

댓글 수: 2

Stephen23
Stephen23 2020년 8월 18일
1000 is a scalar number, so length(1000) is one, so your loop will iterate exactly once.
Sclay748
Sclay748 2020년 8월 18일
ahh I thought if I changed x from a(i).time; to a(1).time; then that would be scalar and only print time once at the first row. Thought I was safe putting it in the length.
How would I fix this so it isn't scalar and includes all 1000 points?

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

 채택된 답변

Cris LaPierre
Cris LaPierre 2020년 8월 18일

1 개 추천

I suspect your don't really want to create 1000 histograms. You don't need a for loop.
Try
histogram([a(1:1000).time])

댓글 수: 7

Sclay748
Sclay748 2020년 8월 18일
Hi Cris, I got an error for too many input arguments.
Did you include the square brackets around the structure?
We don't have your data, so I created a simple test case:
a(1).t=5;
a(2).t=0;
a(3).t=5
histogram([a(1:3).t])
What version of MATLAB are you using?
Sclay748
Sclay748 2020년 8월 18일
I did, and 2020a
Sclay748
Sclay748 2020년 8월 18일
편집: Sclay748 2020년 8월 18일
The data is super long, but there is 5000 rows, and two columns.
1 column is numbered 1-5000, and second colomn has a single time (in miliseconds), and the field is called time.
Sclay748
Sclay748 2020년 8월 18일
wait, now it is working. I was trying to do
histogram([a(1:1000).time/1e3])
to get seconds instead of miliseconds, but the code wasnt liking it.
I think you'd have to do it like this:
histogram([a(1:1000).time]/1e3)
Sclay748
Sclay748 2020년 8월 18일
ahh that did it, thank you!

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

추가 답변 (0개)

카테고리

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

태그

질문:

2020년 8월 18일

댓글:

2020년 8월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by