瀏覽單個文章
Cudacke
*停權中*
 
Cudacke的大頭照
 

加入日期: Oct 2003
文章: 1,311
引用:
Originally posted by dwight1116
嗯∼這一題確實要用 if else elseif
可惜我們班都沒有人會......
小弟自己對MATLAB又一知半解
可以請各位大大給些意見嗎?


這是偶寫的一段有用倒 for loop
if elseif else 的 matlab code.
基本上用法 C 沒啥差別,
只不過是一點語法的小差別,
偶用顏色大概把 for 還有 if 的範圍標示出來,
應該不至於看不懂,
至於題目本身不算難,
多想想應該就知道要怎麼解了.


代碼:
fid = fopen('lenna_jpg2.asc','r');

dctmp = 0;
X_unzzscantmp = zeros(size(X, 1)/8, size(X, 2)/8, 64);
Y_dct8 = X;

% load in every 8x8 block
for m=1:size(X, 1)/8
   for n=1:size(X, 2)/8
      EOBflag = 0;
                
      for g=1:64
         if (EOBflag == 0) 
            ftmp = fscanf(fid, '%s', 1);
         end
         
         
         if EOBflag == 1
            X_unzzscantmp(m, n, g) = 0;
         elseif strcmp(ftmp, 'EOB')
            ftmp = 'nogood';
            EOBflag = 1;
            X_unzzscantmp(m, n, g) = 0;         
         else
            if g == 1
               dctmp2 = dctmp;
               X_unzzscantmp(m, n, 1) = str2double(ftmp) + dctmp2;
               dctmp = X_unzzscantmp(m, n, 1);
            else
               X_unzzscantmp(m, n, g) = str2double(ftmp);
            end            
         end
      end
      
      Y_dct8(((m-1)*8+1):m*8, ((n-1)*8+1):n*8) = unzzscan(X_unzzscantmp(m, n, 1:64));
      
   end
end

fclose(fid);
舊 2003-12-19, 12:12 AM #6
回應時引用此文章
Cudacke離線中