| 查看: 2688 | 回复: 19 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
百里道木虫 (初入文坛)
|
[求助]
matlab函数调用与数组的问题
|
||
|
for i=1:I for j=1:J for n=0:N-1 f(i,j,n)=feq(u,n,rho); end end end function result=feq(u,n,rho) %u(i,j,1)是坐标位置为(i,j)处的水平速度,u(i,j,2)是竖直方向的速度 w=[4/9,1/9,1/9,1/9,1/9,1/36,1/36,1/36,1/36]; e=[0,0;1,0;0,1;-1,0;0,-1;1,1;-1,1;-1,-1;1,-1]; for i=1:I-1 for j=1:J-1 for n=1:N eu=e(n,1).*u(:,:,1)+e(n,2).*u(:,:,2); uv=u(:,:,1).*u(:,:,1)+u(:,:,2).*u(:,:,2); %uv是水平方向与竖直方向速度的平方和 result=w(n)*rho*(1+3*eu+4.5*eu.*eu-1.5*uv); end end end feq这么调用对不?eu和uv的写法对不? 本人初学,函数调用数组这方面不明白,请指点 |
» 猜你喜欢
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有5人回复
售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急
已经有4人回复
上海工程技术大学 激光智能制造课题组 2027级博士研究生招生
已经有6人回复
课题组招2027级博士 上海工程技术大学 激光智能制造方向
已经有6人回复
现代”学阀”该如何界定
已经有14人回复
求合成方法
已经有8人回复
师弟论文见刊大半年才想起来申请专利,还能抢救一下吗?
已经有4人回复
有机合成以后会不会被AI改变?做科研的虫友怎么看
已经有8人回复
我的奶奶
已经有3人回复

【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★
百里道: 金币+9, ★★★很有帮助 2012-10-31 15:32:12
百里道: 金币+9, ★★★很有帮助 2012-10-31 15:32:12
|
这是你的三维矩阵维度的问题, result(p,rho1)算出来的是一个行向量,放到三维矩阵中应该是用A=(i,:,j)来表示的 所以你跟他加减的项应该也是这样的,为了方便一般都用列向量放第一个最方便。 另外你这一句的问题,F(i,j,n),f(ip,jp,n)都是一个数,而result(p,rho1)是一列数,你把一列数赋值给一个数当然报错。 F(i,j,n)=f(ip,jp,n)+(result(p,rho1)-f(ip,jp,n))/tau; 最好的方法是 其中把你的计算结果按列排放就好了。result这个转置可以在子程序里做就可以了。 作为测试,你试试以下程序就明白了 [code] t1=1:5; t2=t1'; A1(6,7, =t1; %t1各元素分别对应每层的(6,6)元素A2(6,:,7)=t1; %t1各元素对应第7层的第6行 A3(:,6,7)=t2; %t2各元素对应第7层的第6列 A1(6,7, -t1 %报错,三维矩阵第3个指数不能直接跟行列向量计算A2(6,:,7)-t1 %不报错,A2第7层第6行减去行向量t1 A2(:,5,7)-t1 %报错,A2第7层第5列是列向量,不能减去行向量t1 A2(:,5,7)-t2 %报错,A2第7层第5列是列向量,但是有6行,不能减去5行的t2 A2(1:5,5,7)-t2 %不报错,A2第7层第5列是列向量,但是有6行,取前5行可以减去5行的t2 A3(:,6,7)-t2 %不报错 A3(5,:,7)-t2 %报错,A3第7层第5行为6的行向量,t2为列向量,长度不同 A3(5,1:5,7)-t2 %报错,改为长度相同,但是一个行向量,一个列向量,不能减 [code] |

17楼2012-10-30 17:17:09
2楼2012-10-22 19:02:35
百里道
木虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 1797
- 散金: 5
- 帖子: 46
- 在线: 11.1小时
- 虫号: 1070800
- 注册: 2010-08-07
- 性别: GG
- 专业: 工程热物理相关交叉领域

3楼2012-10-23 08:28:36
4楼2012-10-23 09:16:44










回复此楼
=t1; %t1各元素分别对应每层的(6,6)元素