Matrix无法编入索引

时间:2017-10-08 06:25:16

标签: matrix indexing

我试图在图像压缩上编写代码。

I = imread('cameraman.bmp');
I = im2double(I);
T = dctmtx(8);
dct = @(block_struct) T * block_struct.data * T';
B = blockproc(I,[8 8],dct);

每当我尝试执行上述行时,我都会遇到错误

error: matrix cannot be indexed with .
error: called from
    @<anonymous> at line 1 column 45
    blockproc at line 135 column 6

请帮我解决这个问题。 感谢。

2 个答案:

答案 0 :(得分:1)

  

@匿名&GT;在第1栏第45栏

它写了&#34; block_struct.data&#34;的位置错误。

发生错误是因为你的block_struct是一个矩阵(例如,[1 2; 3 4])并且它不是可调用对象(换句话说,&#34; block_struct。&#34;被禁止)。< / p>

尝试删除&#34; .data&#34;。

答案 1 :(得分:1)

我通过纠正乘法计算解决了类似的问题。 假设这里的“数据”是一个变量,该变量乘以 block_struct

block_struct.data 更改为 block_struct *数据 在矩阵计算中,使用*代替点符号。

希望有帮助。 JSH