声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1775|回复: 12

[编程技巧] 矩阵的扩展以及ode45

[复制链接]
发表于 2008-6-4 22:13 | 显示全部楼层 |阅读模式

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

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

x
请问:怎样调用工具箱将5*5阶矩阵扩展为25*25的矩阵,其中原5*5阶矩阵以块矩阵分布在25*25阶的主对角线上,其它元素全为零.

[ 本帖最后由 sigma665 于 2008-6-5 19:16 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-6-5 06:37 | 显示全部楼层
发表于 2008-6-5 09:23 | 显示全部楼层
  1. a=ones(5);
  2. b=cell(5,5);
  3. for ii=1:5
  4. for jj=1:5
  5. if ii==jj
  6. b{ii,jj}=a;
  7. else
  8. b{ii,jj}=(zeros(5,5));
  9. end
  10. end
  11. end
  12. c=cell2mat(b);
复制代码
发表于 2008-6-5 10:02 | 显示全部楼层
help blkdiag
例子
a=ones(5);
b=blkdiag(a,a,a,a,a);

评分

1

查看全部评分

发表于 2008-6-5 15:51 | 显示全部楼层
用kron也行;
a=diag(ones(1,5));
b=ones(5);
c=kron(a,b);

评分

1

查看全部评分

 楼主| 发表于 2008-6-5 16:21 | 显示全部楼层
我在运行过程中出现以下情况,请问是什么意思?

??? Error using ==> d:/matlab/toolbox/matlab/funfun/private/odearguments
Solving ERWEIFUN requires an initial condition vector of length 1.

Error in ==> D:\matlab\toolbox\matlab\funfun\ode45.m
On line 155  ==> [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, args, ...

Error in ==> C:\Documents and Settings\hp\桌面\张培茹111\erweifangcheng.m
On line 78  ==>  [T,V]=ode45(@erweifun,[0,0.4],V0,[],M);
发表于 2008-6-5 16:27 | 显示全部楼层
原帖由 rushuidetian 于 2008-6-5 16:21 发表
我在运行过程中出现以下情况,请问是什么意思?

??? Error using ==> d:/matlab/toolbox/matlab/funfun/private/odearguments
Solving ERWEIFUN requires an initial condition vector of length 1.

Error in = ...


路径中不要有汉字(桌面\张培茹111),试试看
 楼主| 发表于 2008-6-5 16:30 | 显示全部楼层
以前好多程序都是这个路径的,这个应该没有问题的.张培茹111那是个文件夹
发表于 2008-6-5 16:39 | 显示全部楼层
原帖由 rushuidetian 于 2008-6-5 16:30 发表
以前好多程序都是这个路径的,这个应该没有问题的.张培茹111那是个文件夹

LZ能否把代码贴出来?
 楼主| 发表于 2008-6-5 17:06 | 显示全部楼层
与错误有关的代码如下:
% V0为初值
for m=1:2^(L+j)+2*N-1
    for k=1:2^(L+j)+2*N-1
    V0(k+(2^(L+j)+2*N-1)*(m-1),1)=sin(pi*x(m+1))*sin(pi*y(k+1));
   end
end
V0;

[T,V]=ode45(@erweifun,[0,0.1],V0,[],M);

function f=erweifun(t,V,M)
f=M*V;
现在运行结果是erweifun里需要一个长度为一的初始向量,请问怎么回事?
发表于 2008-6-5 17:42 | 显示全部楼层
function f=erweifun(t,V,M)
f=M*V;

这里面,给了t,却没有用到
 楼主| 发表于 2008-6-5 17:52 | 显示全部楼层
V是关于t 的向量函数,以前我也这样用过,是正确的
发表于 2008-6-5 19:15 | 显示全部楼层
根据提示
要有长度为1的初始条件
你的v0似乎没有给进去
或者,v0长度不符合要求

还是怀疑m函数没有写正确

[ 本帖最后由 sigma665 于 2008-6-5 21:10 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 02:38 , Processed in 0.063866 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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