2014-02-20 52 views
1

運行程序時出現以下錯誤。struct2table命令出錯

??? Undefined function or method 'struct2table' for input arguments of type 'struct'. 
Error in ==> cellarray at 13 
T=struct2table(parameter,'AsArray',true); 

該計劃是爲下

a=10; 
b=15; 
parameter(a).alpha_star=0; 
parameter(b).gamma_star=0; 
x=5; 
for j=1:b 
    for i=1:a 
    parameter(i).alpha_star=x+i; 

    end 
parameter(j).gamma_star = x^2+j;  
end 
T=struct2table(parameter,'AsArray',true); 

能否請你告訴我,我在哪裏錯了?

+1

輸入'which struct2table'。我猜你沒有找到'struct2table',這意味着你有一個版本的MATLAB pre-R2013b。 – chappjc

回答

0

我猜你有一個比R2013b更早的matlab,並且因爲沒有這個功能(你可以通過which struct2table來檢查)。 您可以嘗試使用struct2arrayreshape解決此問題。

你也可以使用

alp=[]; 
gam =[]; 
for i=1:length(parameter) 
    if ~isempty(parameter(i).alpha_star) 
     alp(end+1)=(parameter(i).alpha_star); 
    end 
    if ~isempty(parameter(i).gamma_star) 
     gam(end+1)=(parameter(i).gamma_star); 
    end 
end 

提取值,以單獨的陣列和

fieldnames(parameter); 

獲得字段名,這是骯髒的,但如果只是需要演示...

+0

是的,我有Matlab R2013a,而且這個功能不起作用。其實,我想用字段名顯示我的結果。此外,還有兩個不同大小的數組,我想在一張表中顯示它們。當我繼續使用結構時,是否有其他方式來處理它。 – Lucky

+0

你能給我一個例子,看看在上面的例子中輸出應該如何? – ben

+0

alpha_star gamma_Star – Lucky