Matlab 用向量除矩阵

Matlab 用向量除矩阵,matlab,Matlab,问题:我试图将3x63矩阵(每一行)除以1x63向量(矩阵的最后一行),matlab向我喊道 矩阵尺寸必须一致。 我做错了什么 coords_ = load('m1.mat') x2D = coords_ .x2D [rows, columns] = size(x2D) last_row_2d = x2D(end ,:) mat_2d = repmat (x2D ,[rows columns]) new_mat = mat_2d ./ last_row_2d 就这么做了,它成功了: last_

问题:我试图将
3x63
矩阵(每一行)除以
1x63
向量(矩阵的最后一行),matlab向我喊道

矩阵尺寸必须一致。
我做错了什么

coords_ = load('m1.mat')
x2D = coords_ .x2D
[rows, columns] = size(x2D)
last_row_2d = x2D(end ,:)
mat_2d = repmat (x2D ,[rows columns])
new_mat = mat_2d ./ last_row_2d

就这么做了,它成功了:

last_row_2d = x2D(end ,:)
new_mat = x2D(1:2,:) ./ last_row_2d

就这么做了,它成功了:

last_row_2d = x2D(end ,:)
new_mat = x2D(1:2,:) ./ last_row_2d

您作为答案发布的解决方案更好(即使用广播),但只需指出初始方法的错误
mat_2d=repmat(x2D,[rows-columns])
这里您不想重复列,只想重复行。否则,
mat_2d
的尺寸将为3行乘63*63columns@Dan是的,我使用了调试器,看到了它的尺寸,明白这个函数对我没有帮助。谢谢你,丹。这本可以奏效的,只是效率不高。您需要这样做:
repmat(x2D,[rows 1])
只重复这些行。但是广播比使用repmat更有效。哦,我明白了。是的,我总是在python w/数组中使用广播,所以这很有意义。非常感谢。您作为答案发布的解决方案更好(即使用广播),但只需指出初始方法的错误
mat_2d=repmat(x2D,[rows-columns])
这里您不想重复列,只想重复行。否则,
mat_2d
的尺寸将为3行乘63*63columns@Dan是的,我使用了调试器,看到了它的尺寸,明白这个函数对我没有帮助。谢谢你,丹。这本可以奏效的,只是效率不高。您需要这样做:
repmat(x2D,[rows 1])
只重复这些行。但是广播比使用repmat更有效。哦,我明白了。是的,我总是在python w/数组中使用广播,所以这很有意义。非常感谢。