MATLAB:插值涉及矩阵

  • 本文关键字:插值 MATLAB matlab
  • 更新时间 :
  • 英文 :


我尝试插值涉及矩阵的关系,但是当我设置它时,我会遇到错误 Error using .* Matrix dimensions must agree.例如,令

A = [1 2;3 4];
I = [1 0;0 1];
ft = linspace(0, 5, 25);
f = A.*ft + I.*ft.^2; %f is a matrix
t = [0:0.1:1];
f = interp1(ft, f, t);

我遇到f = A.*ft + I.*ft.^2;线中的维度错误。我肯定知道如何使用循环解决这个问题。但是我不想做循环。另外,在这种情况下,我不能进行插值。如何解决这个问题?

您正在使用.*,这是标量乘法的,因此您会遇到错误,因为您尝试在矩阵上执行元素的操作,该矩阵的大小不同(A v 1*25对于ft)。

我想您真正想要的是并排设置(0*a,0.04*a,0.08*a,...,0.96*a,1*a)。如果是这样,您应该考虑使用简单的for循环,然后逐步填充ft

如果您不需要避免循环,请帮助您,让我知道如何解决

错误是因为A的尺寸为2x2,而ft的尺寸为1x25。您无法在具有不同维度的两个矩阵上执行元素乘以.*

最新更新