二进制数组操作的数组维度必须匹配。 出错 gui1 (第 146 行) hsv = double(original).*filter_hsv3;这个问题怎么解决
时间: 2024-02-26 10:57:17 浏览: 116
这个问题可能是因为 `original` 和 `filter_hsv3` 的维度不匹配。在执行二进制数组操作时,两个数组的大小必须相同。你可以使用 MATLAB 中的函数 `size` 来检查这两个数组的大小是否相同。
如果这两个数组的大小不同,你需要将它们调整为相同的大小。你可以使用函数 `imresize` 或者 `padarray` 来调整数组的大小。例如,如果你想将 `original` 调整为与 `filter_hsv3` 相同的大小,可以使用以下代码:
```
original_resized = imresize(original, [size(filter_hsv3, 1), size(filter_hsv3, 2)]);
hsv = double(original_resized) .* filter_hsv3;
```
或者,如果你想使用 `padarray` 函数将 `original` 填充到与 `filter_hsv3` 相同的大小,可以使用以下代码:
```
original_padded = padarray(original, [107, 180], 0, 'post');
hsv = double(original_padded) .* filter_hsv3;
```
这将在 `original` 的右下角添加 107 行和 180 列的零填充,使其与 `filter_hsv3` 的大小相同,并将其转换为 `double` 类型。然后,使用 `.*` 进行二进制数组操作。
相关问题
二进制数组操作的数组维度必须匹配。 出错 gui1 (第 69 行) hsv = double(original).*filter_hsv3; 怎么改
这个错误提示是因为 `original` 和 `filter_hsv3` 的维度不匹配导致的。你需要保证 `original` 和 `filter_hsv3` 的维度相同,或者使用一些函数来进行维度匹配。你可以尝试使用 `imresize` 函数将 `filter_hsv3` 的维度变为和 `original` 一样,如下所示:
```
filter_hsv3_resized = imresize(filter_hsv3, [size(original,1) size(original,2)]);
hsv = double(original).*filter_hsv3_resized;
```
或者你可以使用 `repmat` 函数将 `filter_hsv3` 复制成和 `original` 相同的维度,如下所示:
```
filter_hsv3_repeated = repmat(filter_hsv3, [1 1 size(original,3)]);
hsv = double(original).*filter_hsv3_repeated;
```
这样就可以避免出现维度不匹配的错误了。
二进制数组操作的数组维度必须匹配。 出错 gui1 (第 70 行) hsv = double(original).*filter_hsv3;怎么解决
这个问题可能是因为 `original` 和 `filter_hsv3` 的维度不匹配。在执行二进制数组操作时,两个数组的大小必须相同。你可以使用 MATLAB 中的函数 `size` 来检查这两个数组的大小是否相同。
如果这两个数组的大小不同,你需要将它们调整为相同的大小。你可以使用函数 `imresize` 或者 `padarray` 来调整数组的大小。例如,如果你想将 `original` 调整为与 `filter_hsv3` 相同的大小,可以使用以下代码:
```
original_resized = imresize(original, [187, 352]);
hsv = double(original_resized) .* filter_hsv3;
```
或者,如果你想使用 `padarray` 函数将 `original` 填充到与 `filter_hsv3` 相同的大小,可以使用以下代码:
```
original_padded = padarray(original, [107, 180], 0, 'post');
hsv = double(original_padded) .* filter_hsv3;
```
这将在 `original` 的右下角添加 107 行和 180 列的零填充,使其与 `filter_hsv3` 的大小相同,并将其转换为 `double` 类型。然后,使用 `.*` 进行二进制数组操作。
阅读全文