楼主: apfangfang
2378 8

[问答] ~有关for循环问题,在线急等~ [推广有奖]

  • 0关注
  • 0粉丝

小学生

0%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
33 点
帖子
3
精华
0
在线时间
1 小时
注册时间
2011-4-13
最后登录
2013-5-15

楼主
apfangfang 发表于 2011-5-7 22:29:50 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教各位大虾,for循环嵌套,通过每次子循环得出一个数值,如何实现将每次子循环得出的数值放入一个向量中,这个向量维数是外层for循环的总循环次数?谢谢啦,在线急等~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:for循环 For 如何实现 在线

沙发
bobsport168 发表于 2011-5-7 22:44:05
不是很明白你的意思,按我的理解,既然你想构造一个多维向量,你可以把每次子循环后得到的向量放入外层的数组中(在程序中向量这个概念就是多维数组的概念,给你的提示就是一维数组放入一个一维数组后就是二维,二维的放入一维后就是三维,不过还是用vector()比较好)。不知道能不能给你启发

藤椅
yijianpiao235 发表于 2011-5-8 19:12:00
有么有具体的程序,这样不是很懂你说啥。

板凳
Xaero 发表于 2011-5-8 22:37:10
一个效率不高的例子
res=[];
for h1=1:3
for h2=1:3
  for h3=1:3
   res(end+1)=rand();
  end
end
end


各位网友可以思考怎样可以提高速度。
十年一觉扬州梦。
智不足以Academy,才尚不够Industry,[情无力于Life]。

报纸
qibbxxt 发表于 2011-5-9 09:07:26
如果知道循环的次数的话,预定于可以提高效率
如果不知道的话,可以预定于一个较大的数组
或者也可以用多为数组,最后reshape或者用冒号表达式
已有 2 人评分经验 论坛币 学术水平 热心指数 收起 理由
liuxin9023 + 1 鼓励积极发帖讨论
Xaero + 40 + 20 + 1 对头。看看还有么有其他办法?

总评分: 经验 + 40  论坛币 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

地板
tulipsliu 在职认证  发表于 2011-5-9 09:46:05
[m,n]=size(data);
那么就是这样一个 m*n的矩阵。
这个朋友的问题是;
用一个嵌套的循环。

DataTrans=zeros(m,n);  % 假设是一个M*N的样子(不敢说是这样,后面的for次序不同,矩阵可能是N*M)

for i=1:m % 外循环
     for j=1:n % 内循环
            DataTrans(i,j)=rand()+sin(randn(1,1));
    end % 结束内循环
end % 结束外循环

这样的来看,是 M维的;
昨天我一个朋友问我另一个单列;或单行的数据。
转化为M*N的矩阵。

在内循环赋值不是 DataTrans(i,j)的形式,而是一行或一列向量来赋值的话。
那么维数就不一定是M,也可以是N。


这个是回到他的提问的档案。
劳动经济学

7
tulipsliu 在职认证  发表于 2011-5-9 09:50:46
有点头痛。不知道你是说向量空间的维数;还是计算机程序语言的。
比如Basec等认为  dim A(1,2,3) 这个叫3维的
dim A(1,2,3,4) 这个叫四维的;
你问的是这样的话,那你的循环嵌套个数,就是你的维数
要 dim A(1,2)
就两个 for 循环就是。
那就是它的维数。

如果是另外的,
那么,由其他人补充吧

比如4楼的,就是 K-1 个外循环的乘积 3*3
最里面那个不用计算在内。
劳动经济学

8
tulipsliu 在职认证  发表于 2011-5-9 10:20:50
我一个朋友要406的数据转换为: 29*14的。

demo.m

n=406;
data=randn(1,406); % 产生一个行406列的数据
[b,d]=size(data);
if d~=n % 如果是406行1列的数据
   data=data';% 将其转置为1行406列的数据
end; % endif
DataTrans=zeros(29,14); % 初始化转换矩阵
for i=1:29
    DataTrans(i,:)=data(i*14-1:i*14);
end % endfor
劳动经济学

9
tulipsliu 在职认证  发表于 2011-5-9 10:21:20
n=406;
data=randn(1,406); % 产生一个行406列的数据
[b,d]=size(data);
if d~=n % 如果是406行1列的数据
   data=data';% 将其转置为1行406列的数据
end; % endif
DataTrans=zeros(29,14); % 初始化转换矩阵
for i=1:29
    DataTrans(i,:)=data(i*13-1:i*14);
end % endfor
劳动经济学

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 21:57