matlab循环保存每次循环的结果该怎么保存

fork=1:1:14%灵敏度校验mpc.bus(k,3)=0.9*mpc.bus(k,3);[baseMVA,bus,gen,branch,success,et]=ru... for k=1:1:14 %灵敏度校验
mpc.bus(k,3)=0.9*mpc.bus(k,3);
[baseMVA, bus, gen, branch, success, et]=runpf(mpc);
这是其中的一个循环,我想把每次循环branch保存下来并调用该怎么修改
for k=1:1:14
B=zeros(14,1)
mpc.branch(k,3)=0.9*mpc.branch(k,3);
[baseMVA, bus, gen, branch, success, et]=runpf(mpc);
branchk=branch(subpower,14)
B(k)=branchk
end
这是我自己修改了的,可矩阵B是每次改变一行的数据比如最后一次是
B =

0
0
0
0
0
0
0
0
0
0
0
0
0
237.5905
该怎么修改
展开
 我来答
圣鸾OJ
推荐于2016-11-25 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:111万
展开全部
你每次循环生成的值是什么形式——标量,向量,矩阵,或是不定?标量的情况最简单,如果是向量和矩阵,就要考虑你打算用什么样的形式存储了。

通常采用两种方法(以标量为例):

1、把新的结果存在下标为end+1的位置,数组会自动扩展,例如:
A=[]; for i=1:10, A(end+1)=i^2; end

2、预置数组(一般使用zeros),并设置一个计数器标记数组当前的存储位置,然后用该计数器作为下标进行存储。例如:
A=zeros(10000,1); idx=0; while idx<10000, idx=idx+1; A(idx)=idx^(1/idx); end

前一种做法用起来可能更省事一些,但如果循环次数多,数组反复自动扩展会造成效率很低,这种情况应该考虑使用第二种方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3c63e6c
推荐于2017-11-26 · TA获得超过2848个赞
知道大有可为答主
回答量:3829
采纳率:68%
帮助的人:2769万
展开全部
for k=1:1:14 %灵敏度校验
mpc.bus(k,3)=0.9*mpc.bus(k,3);
[baseMVA(k), bus(k), gen(k), branch(k), success(k), et(k)]=runpf(mpc);
end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静静的世界34
2015-07-13 · TA获得超过1371个赞
知道小有建树答主
回答量:847
采纳率:91%
帮助的人:372万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式