如何将matlab数组循环赋值给另外一组数组

题目说的不是很清楚,附程序
function for_rnd()
m=[1200,700,650,1300,600,630]
n=[100,50,50,80,100,80]
%产生均值,方差分别为m(i),n(i)的随机数200个
for i=1:6
r=normrnd(m(i),n(i),1,200)
d(i)=r %想把数组r的值依次赋值给数组d1,d2,……,d6,但提示这出错,意思是d的长度只有i,r中有200个元素;所以我应该是误用了,那请问怎样才能实现我的想法。。。
end

万分感谢!

%很明显i=1:6,因此循环后d只有六个元素,而 r=normrnd(m(i),n(i),1,200)为200个元素,当然不可以了,你的意思是把每次产生的r赋给d中的元素是不。可以这样
function for_rnd()
m=[1200,700,650,1300,600,630];
n=[100,50,50,80,100,80];
%产生均值,方差分别为m(i),n(i)的随机数200个
d=cell(1,6);%用单元数组
for i=1:6
r=normrnd(m(i),n(i),1,200);
d{i}=r;
end
%d{1}就是第一个1X200 的随机数,可以用d{1}(1)引用第一个1X200 的随机数的第一个元素。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-08
max函数为:求最大值
ceil函数为:取整函数,负数取整数部分,正数进位
C = max(A),如果A是一个矩阵, max(A)返回每一列的矩阵的最大值
ceil(max(max(w1))),假定w1为一个N*M的矩阵,求它中数组最大值,并且取整
第2个回答  推荐于2016-04-15
对于一个矩阵A,可以连续赋值,如
>> A(1:3)=1:2:5
A =
1 3 5
对于cell数组,连续赋值可以用一下格式
例1:赋以连续数字
>> test=cell(1,3);
>> test(1,1:3)=num2cell(1:3:9)
test =
[1] [4] [7]
cell数组中每一元素都是一个cell结构的,所以可以连续索引cell单元,赋以连续的cell结构的数据。注意不能用内容索引,即大括号{ },如test{1:3},会报错
>> test{1:3}=num2cell(1:3:9)
The right hand side of this assignment has too few values to satisfy
the left hand side.

>> test{1:3}=1:3:9
The right hand side of this assignment has too few values to satisfy
the left hand side.
例2:
>> test(1:3)={1,'b','c'}
test =
[1] 'b' 'c'
例3:赋以相同值
>> test(1:3)={0}
test =
[0] [0] [0]
第3个回答  2015-11-25
什么意思?一个赋值给另一个不就
本来是a[m][n]的数组
那for i=0:m
for j=0:n

b[i][j]=a[i][j];

这样不行么?
相似回答