全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5427
推到 Plurk!
推到 Facebook!

請問 Matlab 矩陣過大秀不出來怎麼辦??

尚未結案
spawnpighead
一般會員


發表:5
回覆:6
積分:2
註冊:2005-03-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-08 15:49:56 IP:140.115.xxx.xxx 未訂閱
大家好  小弟在這裡獻出我的第一PO   希望大家多多幫我解答  先謝過了~    我用matlab內建的quadtree函式跑一張地表影像 影像大小為1024 * 1024 跑完之後的成果被紀錄在一個叫做blocks的矩陣裡面 但是我點他兩下 卻出現「Cannot display variables with more than 524288 elements.」這資訊 我猜是矩陣太大無法秀出 請問有方法可以解決嗎??

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-08 23:44:59 IP:220.134.xxx.xxx 未訂閱
方便提供 code嗎?大家幫你測看看.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
spawnpighead
一般會員


發表:5
回覆:6
積分:2
註冊:2005-03-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-09 15:33:19 IP:140.115.xxx.xxx 未訂閱
以下是code 從matlab的help裡面quadtree範例得來    
I = imread('test_picdsm_1024.bmp');    S = qtdecomp(I,.4);
blocks = repmat(uint8(0),size(S));    for dim = [1024 512 256 128 64 32 16 8 4 2 1];    
  numblocks = length(find(S==dim));    
  if (numblocks > 0)        
    values = repmat(uint8(1),[dim dim numblocks]);
    values(2:dim,2:dim,:) = 0;
    blocks = qtsetblk(blocks,S,dim,values);
  end
end    blocks(end,1:end) = 1;
blocks(1:end,end) = 1;    imshow(I), figure, imshow(blocks,[])
run完之後就會出現像之前PO過那張圖上的blocks的矩陣 現在問題就在點他兩下打不開 無法得知裡面的內容 麻煩版主解答了 感謝 發表人 - spawnpighead 於 2005/08/10 00:50:22
pioztm
一般會員


發表:1
回覆:3
積分:0
註冊:2005-02-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-26 09:48:23 IP:140.134.xxx.xxx 未訂閱
你可以將一個大矩陣分成多個小矩陣來看 因為矩陣太大所以無法顯示 方法如下 a(1:10,:)=blocks(1:10,:); 意思是 a的1~10列=blocks的1~10 以此類推 定出符合你要的矩陣

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-31 11:06:52 IP:203.203.xxx.xxx 未訂閱
應該不是矩陣太大的問題.我有試著建一個1024*1024的矩陣, 開啟還是很正常. 請問您執行完程式後,在命令列鍵入"blocks"會出現什麼? or 把圖mail給我看看..(我有試著去run你的程式,但不能跑.應該是圖大小的問題)
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
fusung
中階會員


發表:26
回覆:169
積分:99
註冊:2003-11-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-13 18:17:53 IP:61.222.xxx.xxx 未訂閱
如此大的矩陣是沒辦法一次顯示出來的,因為錯誤訊息已經告訴你    不支援元素超過524288,不妨只顯示你有興趣的資料。     例如只想看第一個sub-block 8x8的資料可以用下列指令    >> blocks(1:8,1:8)    如果真的想看全部資料,就將該矩陣切成較小的block(其中元素個數<524288) 分批顯示囉! <> <> >
------


The first step toward proving things for yourself is to understand how others have done it before!

spawnpighead
一般會員


發表:5
回覆:6
積分:2
註冊:2005-03-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-15 15:22:00 IP:140.115.xxx.xxx 未訂閱
抱歉抱歉  小弟這陣子沒有上來這個聖壇 沒注意到大家幫我解答  實在是十二萬分的罪惡 應該是版主寄信給我我才知道 在此向大家道歉  orz    至於我的問題  我用了一個應該不是很好的方法解決 我先把矩陣(文字檔)讀進來blocks裡 然後把blocks儲存成一張jpg圖檔 在自己用BCB讀圖把每個pixel值讀出來 讀到的值(0 & 255)我就可以拿來應用了 這個笨方法提供給大家知道一下  ^^"  雖然我的問題是解決了    至於幾位大大提供的方法 察看矩陣的部分內容  試過了是可行的 只是我的應用需要整個矩陣來做  還是非常感謝您的回應    至於版主所題  blocks點兩下一樣出現如圖的訊息 Cannot display variables with more than 524288 elements. 您試試看找一張1024*1024的圖讀進來 不知道會是什麼樣的結果 不然我試著上傳這張圖好了  只是技術不佳  不知道會不會成功    最後還是再說一次抱歉  並且感謝各位幫我解答  感激不盡  orz    
系統時間:2024-04-29 16:23:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!