声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1191|回复: 8

[编程技巧] 【求助】如何使矩阵元素动态更新?

[复制链接]
发表于 2007-5-15 09:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
想实现A(i,j) = A(i,j) * 1.1
也就是矩阵元素自身为基准变化,但上面语句MATLAB提示矩阵维数不吻合.
有什么方法解决吗?
谢谢.
回复
分享到:

使用道具 举报

发表于 2007-5-15 10:03 | 显示全部楼层
原帖由 pupusix 于 2007-5-15 09:53 发表
想实现A(i,j) = A(i,j) * 1.1
也就是矩阵元素自身为基准变化,但上面语句MATLAB提示矩阵维数不吻合.
有什么方法解决吗?
谢谢.


没看懂,按照你所表述的应该不会出错
 楼主| 发表于 2007-5-15 10:33 | 显示全部楼层
或者是我矩阵设置的问题吗?初始矩阵为MATPOWER中的CASE14.M内含的branch矩阵,本来想发上来的,但好象太大了,发不上来.
更新的语句如下:
b=0.1;
for i=1:14,
            for j=3:5,
                branch(i,j) = branch(i,j) * (1.b);
            end;
MATLAB返回:
??? Index exceeds matrix dimensions.

Error in ==> E:\MATLAB6p5p1\toolbox\matpower3.0.0\我的程序\runcpf11.m
On line 92  ==>                 branch(i,j) = branch(i,j) * (1+b);
这些够吗,要不我把整个M文件上传.
发表于 2007-5-15 10:43 | 显示全部楼层
原帖由 pupusix 于 2007-5-15 10:33 发表
或者是我矩阵设置的问题吗?初始矩阵为MATPOWER中的CASE14.M内含的branch矩阵,本来想发上来的,但好象太大了,发不上来.
更新的语句如下:
b=0.1;
for i=1:14,
            for j=3:5,
             ...


这个不是维数不吻合的问题(相对于两个变量而言),而是数组访问越界(相对于一个变量而言),估计是 branch 矩阵的问题,自己调试一下
 楼主| 发表于 2007-5-15 11:08 | 显示全部楼层
看来确实是访问越界问题,把i和j限制为1:2错误就消失了.
但很奇怪,branch是一个20*11的矩阵,原来的参数明显不可能越界...
发表于 2007-5-15 11:13 | 显示全部楼层
原帖由 pupusix 于 2007-5-15 11:08 发表
看来确实是访问越界问题,把i和j限制为1:2错误就消失了.
但很奇怪,branch是一个20*11的矩阵,原来的参数明显不可能越界...



branch 是matlab的保留字,建议换个名字试试
 楼主| 发表于 2007-5-15 11:19 | 显示全部楼层
保留字是有特殊颜色的吧,branch不是,而且这个矩阵是从另外的函数用loadcase函数调用进来的,在输出的时候又跟其他函数有连接,牵一发动全身....
发表于 2007-5-15 11:21 | 显示全部楼层
原帖由 pupusix 于 2007-5-15 11:19 发表
保留字是有特殊颜色的吧


不一定,可能“保留字”这个词用得不准确,反正我是指matlab自带、默认的命令或者变量名

另外,你使用的是 matlab 6.5,建议不要使用中文路径
 楼主| 发表于 2007-5-15 11:27 | 显示全部楼层
去吃饭了,中午抽个时间专门写段小程序测试访问branch矩阵元素吧.
eight谢谢你了,有什么进展我再向你讨教:lol
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-10-3 08:17 , Processed in 0.056146 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表