2014-01-24 65 views
0

我在Matlab中遵循了很多關於數字格式的文章。現在我已經建立了可用的Matlab,以便可以逐個填充表格。我想讓第一列保持數字,最多可以說12位數字,所以我將格式設置爲longG。 Matlab可用性拒絕接受我的格式,令人沮喪的是,在命令窗口中,所有數字都顯示爲最多15位數字,格式爲longG選項。這是樣本;MATLAB UITABLE和格式選項

colNam={'W','X','Y','Z'}; 

t=uitable('ColumnName',colNam,'Data',zeros(4),'ColumnEditable',... 
    [true true true true],'ColumnWidth',{150,'auto'},... 
    'ColumnFormat',{'numeric'}); 
set(t,'ColumnFormat',{'longG'}); 

我知道sprintf和fprintf,正如其他地方已經解釋的那樣。但請我們拒絕認識到的是,這些數字的類別從雙重變爲字符。如果您想設置表格以使其動態增加1(信貸額度爲waywaywalk),該怎麼辦?爲此,我們不能爲char添加double。請這是令人沮喪的。有什麼建議麼?謝謝。

回答

1

有沒有這樣的ColumnFormat屬性稱爲「longG」,你看到那裏? 您可以操縱Uitable的Java部分以真正顯示數值...但我認爲最好的(也是最簡單的)方法是使用char。

如果您想要增加值,只需先將其轉換爲數字,然後將其轉換回數值。

+0

哦,是的,我這樣做,它的工作。我很感激。我已經發布了我的嘗試,但沒有動態增加價值。我剛剛得到表格數據並將其轉換爲字符串的單元格數組,並將其放回到另一個表格中。謝謝,約翰。 – user2868118

0

基於約翰的建議,我把這個代碼,我可以設置表接受任意數量的數字。

f=figure; 
dat=[101100220001;101100220002;101100220003;101100220004;101100220005]; 
colNam={'W'}; 

t=uitable('ColumnName',colNam,'Data',dat,'ColumnEditable',... 
    [true],'ColumnWidth',{150},'pos',[5 250 200 120]); 

newdat=get(t,'Data'); 
newdat=strtrim(cellstr(num2str(newdat))); %Convert data to cell array of strings 
tt=uitable('ColumnName',colNam,'Data',newdat,'pos',[300 250 200 120]); 
+0

我可以直接從'dat'矩陣轉換爲字符串。我只想確保我的數據將作爲可用的指數出現,獲取數據並更改格式。謝謝。 – user2868118