错误:缩放时,内部矩阵维度必须一致



我正在对创建的网格执行缩放操作。但尺寸似乎不适合缩放网格。有什么办法吗?代码:

% plot grid
[X,Y] = meshgrid(-1:0.1:5, 0:0.1:1);
X = X(:);
Y = Y(:);
plot(X,Y,'b.');
xlabel('X'); 
ylabel('Y');
sx = 0.75;
sy = 0.6;
Tscale = [sx 0 0;
          0 sy 0;
          0 0 1];
Scale_val=Tscale*[X Y].';
X_Scale=Scale_val(1,:);
Y_Scale=Scale_val(2,:);
figure, plot(X_Scale, Y_Scale);

错误:

Error using  * 
Inner matrix dimensions must agree.
Error in: Scale_val=Tscale*[X Y].';

Scale_val=Tscale*[X Y].';

我想你犯了两个错误。首先,你的输入坐标是二维的,只有X和Y,但你正在尝试进行三维变换。其次,矩阵乘法的格式不正确。这就是我认为你试图做的

Tscale = [sx 0 0;
          0 sy 0;
          0 0 1];
Scale_val=Tscale*[X'; Y'; zeros(1,length(X))];
X_Scale=Scale_val(1,:);
Y_Scale=Scale_val(2,:);
figure, plot(X_Scale, Y_Scale,'*');

最新更新