24小时热门版块排行榜    

查看: 3278  |  回复: 6

飞天涛涛

木虫 (小有名气)

[求助] 【已完结】comsol参数里使用matlab函数出现维数不一致问题 已有1人参与

在理论中,有两个变量,GW_d和GW_p,现在要计算GW_p的值,它是一个积分式,GW_d是其积分下线。在comsol模型中,我建立了一个几何模型,GW_d是与几何模型坐标位置有关的值,即GW_d(x,y),这些在comsol”模型“”定义““变量”设置里面都可以完成。但是GW_p这个积分式,简单可以表示成∫f(z)dz,其中下限是GW_d,由于comsol里面只能进行时间或者是空间的积分,不能随意建立自己想要的任意积分表达式,所以在“全局定义”里使用到了”matlab“一项。现在在comsol模型的同目录下编写了一个”abc.m“的matlab函数,在comsol”全局定义“”matlab1“中设置,函数名:abc,自变量:GW_d,在”模型“”定义“”变量“里面增加了一个变量,变量名为GW_p,表达式为abc(GW_d)。然后开始运行,出现了以下错误:

%%%%%%
求协调初始值失败
分离群组2
Error using ==> minus
Matrix dimensions must agree.
Function: abc
最后一个时间步长不收敛
%%%%%%%

个人理解的意思是由于我输入给abc.m文件的变量GW_d是一个上文中提到的GW_d(x,y)的量,里面包含了很多comsol的信息,导致与matlab中维度不一致。于是尝试着将GW_d设为一个定值,发现comsol可以运行。接着就在matlab中用gwd = mpheval(model1,'GW_d')想看看”GW_d“具体的结构,得到附件图片所示的结果,其中p是坐标分布(x,y),d1是GW_d的值。

接下来我该怎么处理,或者不是我以上的思路,有其他什么方法解决维数不一致的问题。

【已完结】comsol参数里使用matlab函数出现维数不一致问题
1.JPG

[ Last edited by 1592203609 on 2014-11-7 at 21:10 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zehung

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
飞天涛涛: 金币+5 2014-04-21 11:43:23
????????_??,?????????????????????M???
???????????}?s??? {} , ??????????????Y?????M?
??????????????Y????x????????[] , ?????????\????
?e?`????_??????S????????????
??????????????_?_?J
2楼2014-04-18 14:20:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞天涛涛

木虫 (小有名气)

???????:
2?: Originally posted by zehung at 2014-04-18 14:20:12
????????_??,?????????????????????M???
???????????}?s??? {} , ??????????????Y?????M?
??????????????Y????x????????[] , ?????????\????
?e?`????_??????S????????????
??? ...

????????comsol with matlab?д?comsol?????????mpheval??????????????GW_d????????????С?expr????cell?????????????GW_d??????p????????????x??y????????n?У????????x?????????y????d1????GW_d????????n?У?n???????????????????????????????????comsol???????????????????comsol????????????????matlab????GW_d??????????????????????abc.m???????????????GW_d???????????????д??.m????????????????????????????abc.m????б????????GW_d,?????save??filename??xxx??????????comsol??????????????????????????????а???????.m?????GW_d?????
??????????????
3楼2014-04-19 10:16:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞天涛涛

木虫 (小有名气)

???????:
2?: Originally posted by zehung at 2014-04-18 14:20:12
????????_??,?????????????????????M???
???????????}?s??? {} , ??????????????Y?????M?
??????????????Y????x????????[] , ?????????\????
?e?`????_??????S????????????
??? ...

????????GW_d?????abc.m?????????????matlab??????????????дabc.m?????????????GW_d?????
4楼2014-04-19 10:21:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zehung

木虫 (小有名气)

引用回帖:
3楼: Originally posted by 飞天涛涛 at 2014-04-19 10:16:07
图片是我在comsol with matlab中打开comsol模型,然后用mpheval函数读取的变量”GW_d“的内容。其中”expr“是cell单元,内容就是”GW_d“,”p“是坐标分布(x,y),两行n列,第一行是x,第二行是y,”d1“是GW_ ...

可以試著將GW_d作為自變量輸入後,設定為一個GW_d_input,再把該矩陣打開看,就會看到輸入值的型態
5楼2014-04-20 12:27:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

飞天涛涛

木虫 (小有名气)

引用回帖:
5楼: Originally posted by zehung at 2014-04-20 12:27:01
可以試著將GW_d作為自變量輸入後,設定為一個GW_d_input,再把該矩陣打開看,就會看到輸入值的型態...

您的意思是在abc.m里面编写语句保存输入的GW_d吗?不知道有没有理解错你的意思。之前我已经做过类似尝试,在abc.m里面编写了“save(filename,‘GW_d’);”,然后去comsol里面运行求解器,等出现报错以后,再去看abc所在的文件夹,里面并没有保存在类似的文件。是不是我这些操作出现了错误?求教

» 本帖已获得的红花(最新10朵)

6楼2014-04-20 13:04:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wansonde

银虫 (初入文坛)

送红花一朵
引用回帖:
6楼: Originally posted by 飞天涛涛 at 2014-04-20 13:04:28
您的意思是在abc.m里面编写语句保存输入的GW_d吗?不知道有没有理解错你的意思。之前我已经做过类似尝试,在abc.m里面编写了“save(filename,‘GW_d’);”,然后去comsol里面运行求解器,等出现报错以后,再去看 ...

请问这个问题解决了吗?
谦虚谨慎艰苦奋斗
7楼2015-04-20 12:55:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 飞天涛涛 的主题更新
信息提示
请填处理意见