0

How to automatically select the column vector of a matrix within which the scalar values in a subset of elements is closest to those in a predefined goal vector of the same sub set?

1 Answers1

0

I solved the problem and tested method on 100,10 matrix, it works - should also work for larger matrices, while hopefully not becoming too computationally expensive

%% Selection of optimal source function 
% Now need to select the best source function in the data matrix 
% k = 1,2,...n within which scalar values of a random set of elements are 
% closest to a pre-defined goal vector with the same random set  
% Proposed Method: 
% Project the columns of the data matrix onto the goal vector
% Calculate the projection error vector matrix; the null space of the
% local goal vector, is orthogonal to its row space  
% The column holding the minimum error vector is the optimal column 
% [1] find the null space of the goal vector, containing the projection
% errors 
mpg = pinv(gloc);
xstar = mpg*A; 
p = gloc*xstar;
nA = A-p;
% [2] the minimum error vector will correspond to the optimal source
% function
normnA = zeros(1,n);
    for i = 1:n
        normnA(i) = norm(nA(:,i));
    end
minnA = min(normnA);
[row,k] = find(normnA == minnA);
disp('The optimal source function is: ')
disp(k)