我有一个充当查找表的函数,我在其中计算给定每列特定行的矩阵的最小值,而我对另一个矩阵执行相反的操作。我这样做是为了找到这两个矩阵中最小元素的索引。然后我使用这些元素提取另外两个矩阵的元素。
function [x1,x2] = lookup_tab(y1,y2,X1,X2,Y1,Y2)
row = (size(Y1,1)+1)/2;
col = (size(Y2,2)+1)/2;
[min1,m] = min(abs(Y1(row,:)-y1));
[min2,n] = min(abs(Y2(:,col)-y2));
x1 = X1(n,m);
x2 = X2(n,m);
X1,X2,Y1,Y2是矩阵,而y1,y2,x1,x2是标量。
如果我不想检查行或列,但是在第一个matrx Y1的主对角线内和Y2的相反对角线内,我该如何做同样的事情?
答案 0 :(得分:0)
您可以使用diag
函数提取矩阵的对角元素
假设您要提取第三个矩阵n-th
的{{1}}元素,其中X3
是向量n
的最低元素的索引,您可以使用此: / p>
dY3=diag(Y3)
在你的情况下,它会像
[~,o]=min(abs(diag(Y3)-y3));
dX3=diag(X3);
x3=dX3(o);