错误:缩放时内部矩阵尺寸必须一致

时间:2014-09-13 16:17:15

标签: matlab transformation spatial

我在创建的网格上执行缩放操作。但尺寸似乎不适合缩放网格。有什么想法怎么做? 代码:

% 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].';

1 个答案:

答案 0 :(得分:0)

Scale_val=Tscale*[X Y].';

你认为你犯了2个错误。 首先,您的输入坐标是2D,只有X和Y,但您正在尝试进行3D转换。第二,矩阵乘法格式不正确。这就是我认为你想要做的事情

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,'*');