Input argument "keepDOF" is undefined?
小弟初学matlab,作业是求static condensation以下为问题:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function =static_condensation(Kx,keepDOF)
n11=max(size(keepDOF)); n22=max(size(Kx))-n11;
nt=max(size(Kx)); static11=keepDOF; k=1; li=1;
for i=1:nt
if(li<=n11)
for l=li:n11
if(i==static11(l)), li=li+1; break;
else static22(k)=i; k=k+1; break; end
end
else
static22(k)=i; k=k+1;
end
end
for i=1:n11
for j=1:n11, K11(i,j)=Kx(static11(i),static11(j)); end
end
for i=1:n22
for j=1:n22, K22(i,j)=Kx(static22(i),static22(j)); end
end
for i=1:n11
for j=1:n22,K12(i,j)=Kx(static11(i),static22(j)); end
end
for i=1:n22
for j=1:n11, K21(i,j)=Kx(static22(i),static11(j)); end
end
K22S=-K12*K22^(-1)*K21; K=K11+K22S;
我运行之后出现以下描述:
??? Input argument "keepDOF" is undefined.
Error in ==> static_condensation at 3
n11=max(size(keepDOF));
不知道是哪里出错了。。。求高手解惑,小弟在这里感激不尽!!
[ 本帖最后由 ChaChing 于 2010-2-25 14:39 编辑 ]
回复 楼主 pengningsolo 的帖子
LZ怎呼叫? 估计呼叫时有误![ 本帖最后由 ChaChing 于 2010-2-25 13:36 编辑 ]
回复 沙发 ChaChing 的帖子
呼叫?不好意思这是啥意思。。?我没有赋值。这是老师的代码 他说可以运行,但是出现了问题
他说 复制粘贴到editor再运行它就可以。可是我一运行,就出现上述问题。源代码我没有改动
[ 本帖最后由 ChaChing 于 2010-2-25 13:37 编辑 ] Ref: 4F, 常见的程序出错问题整理 (eight)
http://forum.vibunion.com/forum/thread-46001-1-1.html
回复 地板 ChaChing 的帖子
还是不太懂。。具体到我这个例子 该如何操作呢。小弟新手。。
回复 5楼 pengningsolo 的帖子
LZ怎呼叫? 就是在command window中LZ怎下命令!?抱歉, 可能一些用词两岸习惯用法不同
估计LZ是在Editor window直接按执行(Run)
请先将该函数存成同名档, 再在command window中呼叫!
[ 本帖最后由 ChaChing 于 2010-2-25 14:41 编辑 ]
回复 6楼 ChaChing 的帖子
对头,我直接在editor界面下点击debug---run--了。command 里没有下命令何谓同名档?其格式还是.m文件?
[ 本帖最后由 ChaChing 于 2010-2-25 16:09 编辑 ]
回复 7楼 pengningsolo 的帖子
抱歉, 就是相同名字的档案(static_condensation.m)[ 本帖最后由 ChaChing 于 2010-2-25 16:09 编辑 ]
回复 8楼 ChaChing 的帖子
呃。。我又有个疑问,怎么在comment window里呼叫?它里面没有任何菜单啊。我先把code从editor菜单里全部复制,然后在comment window中粘贴,但还是出现
??? function =static_condensation(Kx,keepDOF)
|
Error: Function definitions are not permitted at the prompt or in scripts.
不好意思,还得麻烦您。。 ChaChing老师已经说得比较明白了,其实就是matlab函数如何调用的问题。你先把你的代码放在编辑器里,然后保存成文件名和函数名一样的文件,即保存成static_condensation.m。然后就可以调用了。可以在command window里调用,也可以在另外的m文件中调用。以command window为例,可以这样调用:
>> k=static_condensation(,)
k =
-3 -6
-6 -12
建议楼主看看matlab的基本知识。 其实这些应属基础使用, 可能个人表达不佳, 致LZ未理解!
若非LZ人在海外, 考虑应多给帮忙, 不然也可能建议先"看看matlab的基本知识"!:@)
回复 11楼 ChaChing 的帖子
谢谢你。。小弟现在身处国外。。也是第一次用matlab我先好好看下新手入门:)
回复 10楼 friendchj 的帖子
谢谢这位大哥
页:
[1]