作业帮 > 综合 > 作业

MATLAB矩阵赋值(数据更新)问题

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/16 07:08:37
MATLAB矩阵赋值(数据更新)问题
小弟刚刚接触MATLAB不久,看到前人的程序中有如下代码:
BranchData=BranchData(:,:);
NodeData=NodeData(:,:);
其中,BranchData是一个69*5的矩阵;
NodeData是一个69*3的矩阵.
请问:
1.BranchData=BranchData(:,:); 与 NodeData=NodeData(:,:); 是更新BranchData和NodeData的数据么?
2.括号内的“:,:
PS:该段完整代码如下:
power=zeros(1,swarm_size);
for i=1:swarm_size
for j=1:Num_Link_Branch
node_break0(j,1:2,i)=BranchData(Code(j,initial_swarm(i,j))+1,1:2); %将每个染色体编码转成对应的节点后存在node_break0中,进入下步计算
end
node_break=node_break0(:,:,i); %对相应染色体进行潮流计算
BranchData=BranchData(:,:);
NodeData=NodeData(:,:);
[power_loss min_U]=calculate_loss(node_break,BranchData,NodeData);
power(1,i)=power_loss;
end
MATLAB矩阵赋值(数据更新)问题
冒号的作用我给你简单举个例子,你就明白.假如矩阵写成NodeData(1:10,1:3)就代表这个矩阵的1至10行,1至3列的内容.括号内逗号前表示行,逗号后表示列,冒号用来确定范围,如果不需要特别指定矩阵内容的范围,就可以用两个冒号NodeData(:,:)表示矩阵的所有内容.
相对应的NodeData(1:10,:)表示矩阵行数是1至10行,列数是所有的.NodeData(:,1:3)则表示行数是所有的,列数范围是1到3列.
具体操作这是一个赋值的操作,这两个赋值不是多余的操作,因为是在for循环以内,所以就如你所说的,这个一个更新赋值的操作,每一次循环就重新赋值一次.
这样回答,你应该能明白了吧