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

4 次查看(过去 30 天)
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 个评论
Dyuman Joshi
Dyuman Joshi 2023-1-20
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 2023-1-20
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.

请先登录,再进行评论。

采纳的回答

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

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by