我正在对创建的网格执行缩放操作。但尺寸似乎不适合缩放网格。有什么办法吗?代码:
% 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,'*');