【发布时间】:2017-12-20 12:32:45
【问题描述】:
我在下面的代码中收到错误“内部矩阵尺寸必须一致”
t = linspace(0,10,100);
x_exact = exp(-(t-4).^2); % exact solution
x_exact = x_exact';
lambda = randn(size(x_exact)); % diagonal values
A = diag(lambda); % diagonal matrix
y = A*x_exact; % exact data
delta = 1e-3*randn(size(y)); % noise
y_delta = y+delta; % noisy data
%% Define functional
% preallocate the memory
N_alpha = 3;
alpha = zeros(1,N_alpha);
resulting_x = cell(1,N_alpha);
alpha(1) = 1e-9;
alpha(N_alpha) = 1;
x = zeros(100,1);
for n = 1:N_alpha
alpha(n) = alpha(1)+(n-1)*((alpha(N_alpha)-alpha(1))/(N_alpha-1));
alphas = alpha(n);
T = @(x) 1/2*norm(A*x-y_delta)^2+(alphas/2)*norm(x)^2;
resulting_x{n} = fminsearch(@(x) T(x),zeros(1,N_alpha));
end
特别是在线T = @(x) 1/2*norm(A*x-y_delta)^2+(alphas/2)*norm(x)^2;。我试图将* 更改为逐点乘积.*,但随后出现错误“内部矩阵尺寸必须一致”。
x应该是向量输入,当乘以矩阵A时会很好地定义,但是这个函数句柄会导致一些问题
【问题讨论】: