MATLAB:涉及矩阵的插值

时间:2016-06-22 11:31:28

标签: 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;行中的维度错误。我当然知道如何使用for循环解决这个问题。但我不想做一个for循环。此外,在这种情况下,我不能插值。如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您正在使用.*,这是标量乘法,因此您会收到错误,因为您尝试对具有不同大小的矩阵执行逐元素操作(A { 1 * 25 ft}。

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

如果您不惜一切代价避免循环,

This function也可以帮助您,让我知道这是如何解决的

答案 1 :(得分:1)

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