PDA

查看完整版本 : matlab中大括号的一个问题


babybirds
2008-07-04, 16:25
已知sys是一个传递函数
[num,den]=tfdata(sys);
num=num{1,1};
den=den{1,1}

这两个大括号是什么意思啊?

remnant
2008-07-05, 16:42
已知sys是一个传递函数
[num,den]=tfdata(sys);
num=num{1,1};
den=den{1,1}

这两个大括号是什么意思啊?

大括号应该是cell, matlab一种特殊的数据类型。

你可以help cell看一下。

a = cell_name{ i, j }
意思是将cell_name中第 ( i, j )个元素的所存的内容取出并赋给 a ,
此时 a 的数据类型由cell_name{ i, j }所存的内容决定
a = cell_name( i, j )
意思是将cell_name中第 ( i, j ) 个元素赋给 a, 此时 a 依然是个cell.

不知道说清楚没有,举个例子给你吧:
a=[1,2;2,3];
b = [ 'a', 'c','d' ];
c = { a, b }; % cell的赋值方式,可以在左侧的workspace中看到c为1x2 cell
out1 = c(1); % 可以在左侧的workspace中看到out1为1x1 cell
out2 = c{1}; % 可以在左侧的workspace中看到out2和a的类型一致