Please help create a transition matrix

Hi,
I hope anyone could help me, I'm kinda new to Matlab.
I have a variable 'velocity' with the value ranging from 0-48 km/hr. I have about 2250 of these data. I would like to create a frequency matrix of the speed transition follows another speed.
Velocity :
1.28
0.57
0.75
2.88
8.05
13.7
...
I would like to make a frequency matrix with this criteria:
Explanation: cell [2,2] --> velocity < 2 is followed by velocity < 2 one time.
I really appreciate any help you give. Thank you for your time.
Best,
Ella

 采纳的回答

Hi Ella,
The code below should do what you're looking for. I displayed the result as an image but you can just look at the final contents of freqMat
velocity = [1.28 0.57 0.75 2.88 8.05 13.7]
binEdges = 0:2:20; % 0 to 2 is the first bin, 2 to 4 is second bin, etc
[~,velBinNos] = histc(velocity,binEdges); % Histc just asks which bin each velocity belongs to
binTicks = binEdges(1:end-1); % Don't need the last bin edge
freqMat = zeros(length(binTicks));
fromBinNos = velBinNos(1:end-1);
nextBinNos = velBinNos(2:end);
for i = 1:length(fromBinNos)
freqMat(fromBinNos(i),nextBinNos(i)) = freqMat(fromBinNos(i),nextBinNos(i)) + 1;
end
figure, imagesc(binTicks,binTicks,freqMat)
xlabel 'Next velocity bin'
ylabel 'First velocity bin'
colorbar
Did this help you out?
Thanks, Sven.

3 个评论

Hi Sven,
The code works perfectly!
Thank you very much.
Appreciate it.
Best, Ella
Hi Sven,
I have a question about the code. Could you pls explain why we don't need the last bin edge for this: binTicks = binEdges(1:end-1)?
thanks, Ella
can you help me to please to build transition matrix if i have 1000x286 matrix.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Axis Labels 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by