> In VideoWriter/close (line 282) In VideoWriter/delete (line 217) In li18 (line 5) 错误使用 .* 整数只能与同类的整数或双精度标量值组合使用。 出错 li18 (line 21) frame(:, :, 1) = frame(:, :, 1) .* (x / size(frame, 2));
时间: 2023-11-27 22:53:31 浏览: 72
Node.js API详解之 readline模块用法详解
这个错误提示是因为你在使用 .* 运算符时,其中一个操作数是整数类型,而另一个操作数是双精度标量值。这是不允许的,因为 MATLAB 中的运算符 .* 要求两个操作数具有相同的数据类型和大小。
可能的解决方法是将整数类型的操作数转换为双精度类型,可以使用 double() 函数进行转换。例如,你可以这样修改代码:
```
frame(:, :, 1) = double(frame(:, :, 1)) .* (x / size(frame, 2));
```
这将把 frame 的第一个通道转换为双精度类型,然后再进行运算。如果你需要保留整数类型,可以使用对应的整数除法运算符 //,例如:
```
frame(:, :, 1) = frame(:, :, 1) * x // size(frame, 2);
```
这将对 frame 的第一个通道进行整数除法运算,并把结果赋值给同一位置的元素。
阅读全文