[討論] 迴圈結束後值卻都一樣

看板MATLAB作者 (分析師)時間10年前 (2015/08/10 04:02), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
X = imread('cameraman.tif'); y = zeros(size(X)); Qp=[16 11 10 16 24 40 51 61;12 12 14 19 26 58 60 55; 14 13 16 24 40 57 69 56;14 17 22 29 51 87 80 62; 18 22 37 56 68 109 103 77;24 35 55 64 81 104 113 92; 49 64 78 87 103 121 120 101;72 92 95 98 112 100 103 99]; y_value=[]; new_index=[]; zigzag=[1 1;1 2;2 1;3 1;2 2;1 3;1 4;2 3;3 2;4 1;5 1;4 2;3 3;2 4;1 5;1 6;2 5;3 4;4 3;5 2;6 1;7 1;6 2;5 3;4 4;3 5;2 6;1 7;1 8;2 7;3 6;4 5;5 4;6 3;7 2;8 1;8 2;7 3;6 4;5 5;4 6;3 7;2 8;3 8;4 7;5 6;6 5;7 4;8 3;8 4;7 5;6 6;5 7;4 8;5 8;6 7;7 6;8 5;8 6;7 7;6 8;7 8;8 7;8 8]; for i=1:8:249 for j=1:8:249 x = double(X(i:i+7,j:j+7)); n=length(x); c=0:n-1; for g=1:n; if g==1; a(:,g)=sqrt(1/n)*cos(pi*(2*c+1)*0/(2*n)); else a(:,g)=sqrt(2/n)*cos(pi*(2*c+1)*(g-1)/(2*n)); end end y=a.*x.*a'; ii=round(y./Qp); index_table=ii; end for c=1:1024 y_value(:,:,c)=ii; end end 請問一下為何最後我的y_value值都會完全一模一樣呢? 也就是說 第一段FOR那邊都沒成功的RUN,請問哪部分出問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.58.176.226 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1439150521.A.58A.html

08/10 04:12, , 1F
for c=1:1024 y_value(:,:,c)=ii; 目前出問題是這段
08/10 04:12, 1F

08/10 04:13, , 2F
只會一直存當C=1的值 我該如何讓每一個上面迴圈
08/10 04:13, 2F

08/10 04:13, , 3F
跑的值都能夠存進去呢?
08/10 04:13, 3F

08/10 09:33, , 4F
為什麼不在上面的迴圈每次跑y_value(:,:,k)=ii;
08/10 09:33, 4F

08/10 09:33, , 5F
迴圈外面加上k=1;y_value那行下方再加上k=k+1;
08/10 09:33, 5F

08/10 22:17, , 6F
for 邏輯不太對。把for 流程圖畫出來。會發現到
08/10 22:17, 6F

08/10 22:21, , 7F
只有j=249,會丟到y_value參數。i=1:8:249則覆蓋前面
08/10 22:21, 7F
文章代碼(AID): #1Lnx6vMA (MATLAB)
文章代碼(AID): #1Lnx6vMA (MATLAB)