Wind and temperature divided into speed and temp

2 次查看(过去 30 天)
Is there a function to create a matrix with a count (i.e. number of occurrences) where wind speed goes from 0 m/s to 28 m/s in 1m/s intervals along the y axis (downwards i.e. 0 m/s at the top) and temperature goes from -15 deg C to 30 deg C in 5 deg C intervals, along the x-axis?
I have temperature time series data and wind speed time series data. I would like a matrix of counts that tells me how many times a combination of data occurred. For example, count how many time wind speed was 0 m/s and temp was between -15 and -10 deg C.
I can do this manually. I was wondering if there was a more elegant way of 'counting' the combinations and displaying the matrix.
Thank you, Jenny
  2 个评论
Jan
Jan 2013-9-24
Please post a meaningful example of the input in Matlab syntax and the wanted output. The description in text form is not clear enough.
Jenny
Jenny 2013-9-26
My apologies. A more detailed request is posted below as a comment under Image Analyst's answer. There are also the two relevant attached files.

请先登录,再进行评论。

回答(2 个)

Image Analyst
Image Analyst 2013-9-24
编辑:Image Analyst 2013-9-24
logicalIndexes = windSpeed == 0 & (temp > -15 & temp < -10);
count = sum(logicalIndexes);
% Display the temps that have 0 wind speed
temp(logicalIndexes)
  1 个评论
Jenny
Jenny 2013-9-26
Thank you for this answer. This is how to process the data 'manually' i.e.
Indexes_event1 = NewWindSpd <=1 & (NewTempData >= -15 & NewTempData < -10);
count_event1 = sum(Indexes_event1);
Indexes_event2 = NewWindSpd <=1 & (NewTempData >= -10 & NewTempData < -5);
count_event2 = sum(Indexes_event2);
Indexes_event3 = NewWindSpd <=1 & (NewTempData >= -5 & NewTempData < 0);
count_event3 = sum(Indexes_event3);
Which is repeated 9 times for the temperature groups and then 14 times again for the different wind groups.
I am trying to put this into a loop so that I have a more 'elegant' code, rather than almost 300 lines of code.
The TempData groups are: -15 to -10; -10 to -5; -5 to 0; 0 to 5; 5 to 10; 10 to 15; 15 to 20; 20 to 25; 25 to 30.
The WindSpd groups are: <1; 1 to 3; 3 to 5; 5 to 7; 7 to 9; 9 to 11; 11 to 13; 13 to 15; 15 to 17; 17 to 19; 19 to 21; 21 to 23; 23 to 25; >25.
Thanks for your help, Jenny

请先登录,再进行评论。


Youssef  Khmou
Youssef Khmou 2013-9-24
编辑:Youssef Khmou 2013-9-24
Jenny, try this version ,
wind=round(20*rand(20,1)); % arbitrary wind time series .
temp=round(10*randn(30,1)); %arbitrary temperature time series .
W0=5; % your critical value of wind speed
temp1=5; % bound1
temp2=15; % bound 2 , critical values of temperature
e=1e-2; % Tolerance of the logical == operation
% Replace wind and temp with your input
M=length(wind);
N=length(temp);
I=zeros(M,N); % your counting matrix
for x=1:M
for y=1:N
if (abs(wind(x)-W0)<=e) && (temp(y)>=temp1 && temp(y)<=temp2)
I(x,y)=1;
end
end
end
figure, surface(I);
title(' detection of specific values ');
sum(I(:)) % number of occurence
  1 个评论
Jenny
Jenny 2013-9-26
Thank you for this. I have posted the question in more detail under Image Analyst's answer. I am working on fitting your to my data.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by