How to compare the the values of a 3-d dimensional array

2 views (last 30 days)
Suppose I have a 3-D array, lets say, p(1,n,k) where n varies from 0 to t_span and t_span = 0:dt:80 (dt = 0.01) and k varies from 1 to 8.
Lets say I have an energy level denoted by E and decreasing at a constant rate in the following way:
E(1) = 6000;
E_lower = 4500;
E(n+1) = E(n) + dt * (-100);
What I want is, at the instant when E < E_lower, I want to compare the values between p(1,n,1) to p(1,n,8) and I want to know the index 'k' where the lowest value of p(1,n,k) is present at that particular instant "n".
Can anyone help me in this, how to proceed.
Thanks in advance.
  2 Comments
Dyuman Joshi
Dyuman Joshi on 20 Jan 2023
As an index n must be a natural number, which is not the case here.
The smallest value of n or the value of n at the instant E < E_lower is, n = 1502, from the relationship you wrote.
Now we have to find the minimum of p(1,n,1:8). You can use the min for that, and obtain both the minimum value and the corresponding index.
Pallov Anand
Pallov Anand on 20 Jan 2023
Thanks for your reply.
In this case, it might be 1502. But I want to write a code in such a way that, as soon as E < E_lower, then I need to compare the values between p(1,n,1:8) and get the minimum value as well as the index of the corresponding minimum value.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 20 Jan 2023
Edited: Matt J on 20 Jan 2023
n=find( 6000-100*t_span < E_lower,1);
[~,kmin]=min(p(:,n,:),[],3);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!