2017-06-28 143 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结构不能工作。