看板 MATLAB 關於我們 聯絡資訊
小弟只是個matlab新手 最近在寫一個程式 主要目的是將圖讀進去matlab運算之後再做圖來分析 但是運算裡面有用到開耕號 程式碼出現error 如下列所示 ??? Error using ==> power Integers can only be raised to positive integral powers. google一下知道矩陣圖裡值一定要是0~255整數 而以下是我寫到一半的程式碼 clear all %cos=(I-I1-I2)/2*[(I1*I2).^0.5] a=imread('D:\ych\0.0.jpg'); b=imread('D:\ych\0.0-.jpg'); c=imread('D:\ych\0.0+.jpg'); d=(c-a-b)./(2.*((a.*b).^0.5)) 主要問題是出在 (a.*b).^0.5 但是因為最後d的值應該會介於-1~1 所以也不敢讓它近似最近的整數 怕誤差會很大 請教板上各位高手~有沒有其他指令可以改進這個程式呢 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.101.4
yfr:改用sqrt ? 03/01 20:39
sunev:轉型成double 03/01 21:10
vincent59:接樓上的a=double(所讀的影像矩陣); 03/01 21:37
mikker:就像寫c時 char跟double 型態不同 運算結果會出乎預料 03/02 00:16
gozelee:如果還是不行的話.看一下a矩陣大小.(:,:,3)不能點乘 03/02 12:58
yjha:轉成double之後就可以了! 感謝各位 03/05 16:07