matlab动态数组怎么实现
答案:2 悬赏:50 手机版
解决时间 2021-01-04 18:26
- 提问者网友:溺爱和你
- 2021-01-04 04:48
matlab动态数组怎么实现
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-01-04 05:14
A=[];
n=input('n=');%数组的长度
for i=1:n
fprintf('a%.0f=',i);
x=input('');%分别输入各个数的值
A=[A,x];
end
A
就可以得到长度为n的数组了
建议在一开始就定义数组大小,这样可以减少内存的使用,同时加快计算速度,特别是数组较大的情况下,比如
A=ones(n,1);
for ii=1:n
...
...
end
另外,在matlab里不推荐使用i,j作为循环变量,因为他们本身也是虚数单位。在有些情况下可能会造成混乱。
n=input('n=');%数组的长度
for i=1:n
fprintf('a%.0f=',i);
x=input('');%分别输入各个数的值
A=[A,x];
end
A
就可以得到长度为n的数组了
建议在一开始就定义数组大小,这样可以减少内存的使用,同时加快计算速度,特别是数组较大的情况下,比如
A=ones(n,1);
for ii=1:n
...
...
end
另外,在matlab里不推荐使用i,j作为循环变量,因为他们本身也是虚数单位。在有些情况下可能会造成混乱。
全部回答
- 1楼网友:封刀令
- 2021-01-04 05:38
数组的构造和矩阵的构造方法类似,它也可以采用直接输入法。例如:
>>x=[3 sqrt(2) pi/2 6]
x=
3.000 1.4142 1.5708 6.0000
也可以通过设定步长,生成一维数组
>>x=0:0.2:1 %起点是0终点是1,步长是0.2
x=
0 1 2 3
步长值可以省略,当前默认步长为1,如:
>>x=0:1
x=
0 1
多维数组的函数间处理:
(1)reshape函数
>>x=0:8
>>a=reshape(a,3,3) %把一维数组a重新排列成3*3的二维数组
a=
0 3 6
1 4 7
2 5 8
>>t=reshape(a,1,3,3) %把二维数组a重新排列成1*3*3的三维数组
t(:,:,1)=
0 1 2
t(:,:,2)=
3 4 5
t(:,:,3)=
6 7 8
(2)也可以用cat函数。该函数能将几个数组按照指定的维数组合成一个新的数组。
调用格式为:cat(dim,a1,a2,a3,....)
(3)permute函数能将多味数组变换,格式为permute(a,order)
(4)ipermute函数是(3)函数的逆运算
(5)shiftdim函数与permute类似
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯