我無法計算eye(100)
和s = imread('1','gif')
的乘積。矩陣的尺寸是相等的,但MATLAB注意到以下錯誤:元素明細後矩陣乘法
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
如何可以定義s
與在MATLAB浮點值的矩陣?
我無法計算eye(100)
和s = imread('1','gif')
的乘積。矩陣的尺寸是相等的,但MATLAB注意到以下錯誤:元素明細後矩陣乘法
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
如何可以定義s
與在MATLAB浮點值的矩陣?
MATLAB的imread
返回一個元素類型爲uint8
(無符號8位整數)的矩陣。與產生double
類型的矩陣的eye(100)
相反。由於操作.*
針對不同類型的操作數沒有定義,你需要操縱它之前s
轉換爲double
:
s = double(imread('1', 'gif'));
Eitan,這可能不像許多其他答案那樣清晰。 imread'返回uint8's並不是真的,它的圖像是'uint8'。 '。*'沒有爲'uint8'定義,這是因爲你不能將它應用於兩個不同類的參數。也許有點編輯? –
@SamRoberts [文檔](http://www.mathworks.com/help/matlab/ref/imread.html#f25-722074)表示,'imread'用於將輸入圖像GIF返回'uint8'(除非它是1位圖像)。我不確定'。*'的部分,但我會接受你的說法。 –
呃,什麼?當你說「imread用於輸入GIF圖像返回UINT8(除非它是一個1位圖像)」,你跟我一致認爲「這不完全正確imread返回uint8s,它的圖像是UINT8」?你的句子似乎暗示我的(gif),而不是反駁它。 –
爲什麼你會用眼睛反正繁殖。它會返回相同的東西? – MZimmerman6
它只會保持對角線,其他的都是黑色的。 –