2017-06-28 140 views
0

我想明白,爲什麼下面的代碼工作:MATLAB單元陣列和陣列 - 錯誤

close all 
clear all 
t=[0:0.1:10]; 
x=figure(1); 
plot(t,t.^2) 
a=getframe(gcf); 
b{1}=frame2im(a); 

,而不是下面的代碼不起作用:

close all 
clear all 
t=[0:0.1:10]; 
x=figure(1); 
plot(t,t.^2) 
a=getframe(gcf); 
b(1)=frame2im(a); 

如果我使用「B( 1)= X;」有用。

非常感謝。

回答

0

在一個數組中,只能存儲一個在單個索引處的任何類的1x1值,但數組中所有元素的類必須相同。在單元陣列中,不存在這樣的限制。

frame2im(a)[525x700x3 uint8]因此,如果要將其存儲在單個索引中,則可以將其存儲在單元格中,而不是簡單的數組。
b(1)=x;因爲x1x1 matlab.ui.Figure。您還可以將x存儲在單元陣列中。

0

就我的理解,你需要知道什麼細胞是在MATLAB中。如果你碰巧知道Python,你可能會以「列表」方式思考。 MATLAB單元格可以存儲數字,字符串等。但是它的數組是用來存儲數字的。 這就是爲什麼你的fram2im結構不能工作。