MATLAB算法扩展在R2016b
今年夏天早些时候,我在写一些颜色空间转换代码。在代码中,我有一个Px3矩阵叫做RGB,包含P种颜色,每行一种。我还有一个1x3的向量,v.我需要乘以每一列RGB对应的元素v像这样:
RGB_c = [RGB (: 1) * v (1) RGB (:, 2) * v (2) RGB (:, 3) * v (3)];
但是由于我使用的是MATLAB R2016的内部开发构建(9月14日发布),所以我没有输入上面的代码。相反,我打了这个:
RGB_c = RGB .* v;
在R2016a和更老的MATLAB版本中,这行代码产生了一个错误:
>> RGB_c = RGB .* v错误使用.*矩阵维数必须一致。
在新的版本中,MATLAB隐式地扩大向量v与矩阵大小相同RGB然后进行元素乘法运算。我说“隐式”是因为MATLAB实际上并没有在内存中复制展开的向量。
要阅读所有关于MATLAB矩阵算法的变化,请阅读Loren的MATLAB艺术博客和看我帖子关于它。
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。