2017-03-12 12 views
0

A(k1,k2) 데이터 집합에 대한 회귀를 원했지만 회귀를 -K1<k1<K1-K2<k<K2 범위 내로 제한하고 싶습니다. A60x60 행렬로 구성된 이미지 단계이며, 크기는 MxN입니다. A의 정규화 된 주파수 영역의 중심으로부터 0.1N/2만큼 최소 제곱 근사를 수행합니다.최소 제곱 회귀의 범위 제한

A=rand(60); 
[m, n]=size(A); 
[M,N] = meshgrid(1:m,1:n); 
X = [M(:), N(:)]; 
B=regress(A(:), X); %regression will be done on all the values of A, part where adjustment needed 
hat=reshape(X*B,m,n); 

답변

1

당신은 먼저 회귀 수행 할에 행렬의 부분 집합을 선택할 수 있습니다 : 여기

코드의 일부이다 호기심에서

% generate the full image 
A_full=rand(60); 
[m, n]=size(A_full); 

% select the part you want, 
% it is not very clear to me if this is really the part you want, 
% but I think you will be able to change it to your needs 
A=A_full(floor(m/2-0.1*m/2):ceil(m/2+0.1*m/2), floor(n/2-0.1*n/2):ceil(n/2+0.1*n/2)); 

% perform the regression on the selected part of A (like you did it) 
[m, n]=size(A); 
[M,N] = meshgrid(1:m,1:n); 
X = [M(:), N(:)]; 
B=regress(A(:), X); %regression will be done on all the values of A, part where adjustment needed 
hat=reshape(X*B,m,n); 
+0

를, 그것은 할 수 있습니다 'k1' 값을 모두 유지하면서 모든'k2' 값을 0으로 만들고,'A (k1,0)'? –

+0

예, A = A_full (floor (m/2-0.1 * m/2) : ceil (m/2 + 0.1 * m/2), floor (n/2)); 'k2 = 0'이 행렬의 중간에 해당한다고 가정하면, 그렇지 않을 수도 있습니다. (색인 0은 matlab에 존재하지 않습니다) – m7913d

+0

아하이, 도와 줘서 고마워! –

관련 문제