Matlab查找表

时间:2018-05-11 13:29:58

标签: matlab

我有一个充当查找表的函数,我在其中计算给定每列特定行的矩阵的最小值,而我对另一个矩阵执行相反的操作。我这样做是为了找到这两个矩阵中最小元素的索引。然后我使用这些元素提取另外两个矩阵的元素。

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的相反对角线内,我该如何做同样的事情?

1 个答案:

答案 0 :(得分:0)

您可以使用diag函数提取矩阵的对角元素 假设您要提取第三个矩阵n-th的{​​{1}}元素,其中X3是向量n的最低元素的索引,您可以使用此: / p>

dY3=diag(Y3)

在你的情况下,它会像

[~,o]=min(abs(diag(Y3)-y3));
dX3=diag(X3);
x3=dX3(o);