声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7294|回复: 7

[综合讨论] To RESHAPE the number of elements must not change 出错求助

[复制链接]
发表于 2008-3-18 12:45 | 显示全部楼层 |阅读模式

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

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

x
源程序如下:
function [C,D]=F1
syms Phy  phy1 phy2 phy3  xi phyi xi1 xi2 xi3 phyi1 phyi2 phyi3 L a b pho1 xi1t xi2t xi3t phyi1t phyi2t phyi3t ...
    xi1tt xi2tt xi3tt phyi1tt phyi2tt phyi3tt phy1t phy2t phy3t phy1tt phy2tt phy3tt Cyk1 Cyk2 Cyk3 Cphyk1 Cphyk2 Cphyk3...
    Dyk1 Dyk2 Dyk3 Dphyk1 Dphyk2 Dphyk3
n=input('请输入划分的rfe的个数:n=');
Sye=[0 0 0;0 0 1/2*L;0 -1/2*L 0];
I=[1 0 0;0 1 0;0 0 1];
I1=zeros(3,3);
K=[I Sye;I1 I];
Cyk=[Cyk1 0 0;0 Cyk2 0;0 0 Cyk3];
Cphyk=[Cphyk1 0 0;0 Cphyk2 0;0 0 Cphyk3];
ck=[Cyk I1;I1 Cphyk];
Ckll=K'*ck*K                                  %(6*6)
Cklr=-K'*ck*K;
Ckrl=-K'*ck*K;
Ckrr=K'*ck*K;
Dyk=[Dyk1 0 0;0 Dyk2 0;0 0 Dyk3];
Dphyk=[Dphyk1 0 0;0 Dphyk2 0;0 0 Dphyk3];
dk=[Dyk I1;I1 Dphyk];
Dkll=K'*dk*K;                                  %(6*6)
Dklr=-K'*dk*K;
Dkrl=-K'*dk*K;
Dkrr=K'*dk*K;
b=6*n;
C=zeros(b,b);
k=input('请输入第k个sde:k=');
d=k+5
Ckll=sym(Ckll)
C(k:d,k:d)=double(Ckll)

提示问题:
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> sym.double at 37
X = reshape(X,siz);

Error in ==> F1 at 29
C(k:d,k:d)=double(vpa(Ckll))
请问怎么修改?
谢谢!!!!!!

[ 本帖最后由 eight 于 2008-3-18 15:24 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-3-18 13:39 | 显示全部楼层

回复 楼主 的帖子

这个错误似乎不在你的程序里,X = reshape(X,siz);没有用到


sym.double 这个文件是你编的还是自带的?
 楼主| 发表于 2008-3-18 14:14 | 显示全部楼层
提示问题:
??? Error using ==> reshape
To RESHAPE the number of elements must not change.

Error in ==> sym.double at 37
X = reshape(X,siz);

Error in ==> F1 at 29
C(k:d,k:d)=double(vpa(Ckll))

这些都是运行时候显示的内容
发表于 2008-3-18 15:24 | 显示全部楼层
置顶的常见错误整理贴中有收录——原来没有,一会收录进去。不过这些错误大同小异,就是变换前后总元素不能改变,即变换前是 [2,3] 的6个元素的矩阵,变换后可以是[3,2]、[1,6]的6元素矩阵,不能是[2,4]的8元素矩阵。解决方法:自己调试一下程序,看变换前后的矩阵大小是否符合上述要求

[ 本帖最后由 eight 于 2008-3-18 15:28 编辑 ]
 楼主| 发表于 2008-3-18 17:18 | 显示全部楼层
谢谢eight!
可是那个阅读权限太高了,我还看不到。
 楼主| 发表于 2008-3-18 17:22 | 显示全部楼层

刚刚我把下面的量赋值以后程序可以运行了,不知道这样可以不?

Cyk1=10;Cyk2=10;Cyk3=10;
Cphyk1=10;Cphyk2=10;Cphyk3=10 ;
Dyk1=5;Dyk2=5;Dyk3=5;
Dphyk1=5;Dphyk2=5;Dphyk3=5;
L=3;
发表于 2009-8-5 18:16 | 显示全部楼层
a=[1 2 3;2 3 1;2 3 4]

a =

     1     2     3
     2     3     1
     2     3     4

>> chol(a)
??? Error using ==> chol
Matrix must be positive definite.
怎么个回事啊??????????????????????
发表于 2009-8-5 21:49 | 显示全部楼层

回复 7楼 fdp0525 的帖子

from chol Help
R= chol(X), where X is positive definite produces an upper triangular R so that R'*R = X. If X is not positive definite, an error message is printed.

[ 本帖最后由 ChaChing 于 2009-8-5 21:50 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 17:33 , Processed in 0.075655 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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