计算矩阵中的顶部元素(Matlab)
我有矩阵:计算矩阵中的顶部元素(Matlab),matlab,matrix,threshold,Matlab,Matrix,Threshold,我有矩阵: A=[ 4 0 0 0 0 0 3 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 1 ]; 我想在diag中得到前k个元素的值,这样这些元素的总和就大于预定义的阈值T,而k则尽可能大 For example: T= 0.9 (4+3+2)/(trace(A)) = 0.818... (4+3+2+1)/(trace(A)) = 0.909... i、 我们可以得到A中的顶值向量:V=[
A=[ 4 0 0 0 0
0 3 0 0 0
0 0 2 0 0
0 0 0 1 0
0 0 0 0 1 ];
我想在diag中得到前k个元素的值,这样这些元素的总和就大于预定义的阈值T,而k则尽可能大
For example: T= 0.9
(4+3+2)/(trace(A)) = 0.818...
(4+3+2+1)/(trace(A)) = 0.909...
i、 我们可以得到A中的顶值向量:V=[4,3,2],因此k=3
谁能告诉我怎么做 对于
diag(A)
的cumsum
,您想查找比较X.diag(A)
的cumsum
您想查找比较X./trace(A)的你是如何从你的D=9/10中得到10的?你是如何从你的D=9/10中得到10的?我想你得到了正确的结果,我只是要删除我的答案,我真的很困惑…我想你可以在总和之前加一个排序下降来确定顺序。我想你得到了正确的结果,我只是要删除我的答案,我真的很困惑…我想你可以在总和之前加一个排序下降来确定顺序。
find(cumsum(diag(A))./trace(A)<=T,1,'last')