matlab 定义数组问题?

matlab 怎样定义一个数组,它的每个元素是一个向量,且向量长度不等?

可以使用胞元数组来实现。
例如,你想定义一个含100个元素的数组,数组的每个元素是一个向量,那么可以这样:
A=cell(100,1);%定义一个长度为100的胞元数组
a=[1 2 4 5 2];%定义a向量
b=1:23;%定义b向量
A{1}=a;将a向量作为数组A的第一个元素
A{2}=b;%将b向量作为数组A的第二个元素
...
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-21
可以使用元胞数组,比如
>> A{1} = [1 2 3];
>> A{2} = [4 5];
>> A
A =
[1x3 double] [1x2 double]
>> celldisp(A)

A{1} =

1 2 3

A{2} =

4 5

>>
第2个回答  2013-10-21
你可以查查使用matlab里面的cell,其实就是C语言里面的结构体。

Matlab 7.0定义数组问题
matlab 定义数组问题? 可以使用胞元数组来实现。 例如,你想定义一个含100个元素的数组,数组的每个元素是一个向量,那么可以这样: A=cell(100,1);%定义一个长度为100的胞元数组 a=[1 2 4 5 2];%定义a向量 b=1:23;%定义b向量 A{1}=a;将a向量作为数组A的第一个元素 A{2...

matlab数组怎么定义
第一步首先我们需要知道在matlab定义全零数组使用的是zeros函数,在命令行窗口中输入“help zeros”,可以看到函数使用方法,如下图所示:请点击输入图片描述 第二步输入zeros(1,6),生成1行6列的全零一维数组,如下图所示:请点击输入图片描述 第三步输入zeros(1,10),生成1行10列的全零一维数组,...

如何使用Matlab声明矩阵数组
1、首先在Matlab中最常用的声明数组的方式就是使用中括号和分号了,如下图所示 2、然后我们也可以把中括号去掉,改成手动换行,如下图所示,中括号在声明数组的时候就是起到了换行的作用 3、接下来我们还可以用冒号声明矩阵数组,如下图所示,代表的是声明0到2的一维数组,每次数值加1 4、另外如果在...

matlab 怎样定义一个数组,它的每个元素是一个向量,且向量长度不等?
排序不等式是:倒序<=乱序<=顺序;所以最好是a和b都排序成顺序才会得到最大值。但如果a保持不动,让b排序使得得到的乘积最大,这其实是一个整数二元线性规划问题。你可以设一个矩阵c,这个矩阵是7x7的,行元素表示对应a中1到7的位置,列元素的含义是对应b元素不排序的值。在7x7矩阵中aij表示:a中...

matlab定义数组
下面用一个简单的例子可以说明。你写一个数组B,前面是20个1,后面有10个零,然后用C=perms(B)。这里的C就会把你所有的数组表示出来。简单例子如下所示:a=[1 2 3 4]a = 1 2 3 4 >> perms(a)ans = 4 3 2 1 4 3 1 2 4 2 3 1 4 2 1 3 4 1 2 3 4 1 3 2 3 4 2...

matlab中如何定义数组的维数?
x=ones(1,n)表示x为全0数组;q=zeros(1,n)表示q为全0数组;n=length(a)表示获得数组a的最大维度。1、数组的维数:在MATLAB中,允许标量数据沿行、列、页等方向排列成 ‘长方体’,而构成数组,而行、列、页等排列方向就分别被 称为行维、列维和页维。2、数组的规模及相关术语:数组沿某...

matlab怎么定义一个数组,并用for语句来赋值啊
楼上的回答是可以的,但是我建议在一开始就定义数组大小,这样可以减少内存的使用,同时加快计算速度,特别是数组较大的情况下,比如 A=ones(n,1);for ii=1:n ...end 另外,在matlab里不推荐使用i,j作为循环变量,因为他们本身也是虚数单位。在有些情况下可能会造成混乱。

matlab 自定义函数用数组作参数时报错
1 可以在linff函数内部对输入的数组参数z的元素循环,z的长度用length函数获得。从而消除了外部的循环,但是linff函数内部有循环。2 如果非要消除所有的循环,可以这样写:function a = linff(z)zb1 = z > 0;zb2 = z < 10;zb3 = z >= 10;a = zb1.*zb2 .* z.^2 + zb3 .* (-2...

matlab形参为数组的函数定义问题!求解!多谢大神!
同样的定义,matlab没有像c语言那样严格的参数类型限制 你可以定义function yy = fitnessfct(aa)在函数里面 aa(:,n)就是aa的第n列数据 aa(m,:)就是aa的第m行数据 aa(m,n)就是aa的第m行,n列数据

matlab问题:a=[1,1]; for k=3:100, a(k)=a(k-1)+a(k-2); end
a=[1,1];定义了一个1x2的数组,定义数组时数据成员之间可以用逗号隔开或者是直接空格。当数据成员间使用分号隔开时,表示换行。利用a=[1,1;1,1;1,1];定义的是一个3x1的数组,数组有三行,每行有三个数据成员。for k=3:100 a(k)=a(k-1)+a(k-2);end 这是一个循环,在Matlab中...

相似回答
大家正在搜