您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向量化 >

matlab中需要定义一个函数比如说是f(xyz)g(xyz)这种关于三个变量

发布时间:2019-09-03 06:11 来源:未知 编辑:admin

  matlab中需要定义一个函数比如说是f(x,y,z),g(x,y,z)这种关于三个变量的函数,不知道怎么定义,求高手指导

  matlab中需要定义一个函数比如说是f(x,y,z),g(x,y,z)这种关于三个变量的函数,不知道怎么定义,求高手指导

  做的时候需要做成网格状,x,y,z是以1为单位变化的我现在知道液面的边界条件,就是通过给我的初始条件,能够求出网格里第一行的21个点,另外知道一个左右的边界条件,再由内部各点的条...

  我现在知道液面的边界条件,就是通过给我的初始条件,能够求出网格里第一行的21个点,另外知道一个左右的边界条件,再由内部各点的条件知道各点的关系,然后求出各点的φ值,具体的题目,我可以邮件给你的。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  这时x,y,z都是3维矩阵,因此后面无法进行乘法运算是吧。因此函数没法写。你是这个地方卡住了是吧???

  x=x(:);y=y(:);z=z(:);这样将xyz变成向量。就可以像平时一样定义函数了。更多追问追答追问谢谢你的回答,我是想把把f(x,y,z)看坐是数组 A[i,j,k],然后对这个数组在不同的i,j,k 下写出对应的关系并进行迭代,最后解出 A[i,j,k] 中各元素的值,对于这种三维数组怎么定义?追答三维数组的定义是这样的:

  你的想法我明白,但是这样编程实在太麻烦了。我不知道你的函数的具体形式。但是对于一个能显性表达的一个三元函数,你的这种用3维数组来表达一个函数的形式很难操作啊。用我的方法应该非常方便。我举个例子:

  如果函数表达式是这样的w=x+y*z; 那么,新建m函数文件,取名myfun.m

  % 比如如下定义 [x,y,z]=meshgrid(1:10); xyz的范围和采样你可以根据自己的需要自己指定。然后通过参数传递到这个函数来。

  w = w=x1+y1.*z1; %向量化的xyz可以方便的表达任何函数,如果不向量化,3维矩阵的计算非常受限制。乘法是肯定不可以的。加法我忘了,好像也不可以。。但是向量化之后随便操作。

  这样w也是和xyz同样尺寸的向量。但是你需要的是3维矩阵形式的。那么再进行下一步。

  完事了。希望能帮到你。不清楚你的具体要求和目的,要是还有不懂的再问吧。我觉得已经够详细了。追问程序在补充问题里,不知道对不对追答首先你这个程序有几个问题:

  这句就运行不了。(AB是三维矩阵,这个表达式matlab无法计算!),我之前让你做向量化就是为了避免这个问题的出现。如果AB都向量化了A=A(:);B=B(:),AB就会按照特定的顺序排列成一个向量,然后A(1,j,2)-A(1,j,1)=B(1,j,1)*t就可以运行了。最后得到的结果用reshape命令再重新变回原来的矩阵形式。后面的代码我就不运行了。因为这个问题肯定一直存在的。

  3.看你这个程序貌似是计算液面高度的。我暂且认为你的数学建模是正确的,仅从程序上给你找问题。但是如果你对matlab不是十分熟悉,建模可能会不正确,你把你的数学模型描述给我,我给你弄吧。而且你的数学模型看起来也不复杂,应该很容易弄。嗯,真的完全就是你所说的这种情况啊。我是对一个贮液容器液体进行一个建模的。网格划分:使用正方形网格,并对各个节点进行标记。假设分成20*10份,那么一共有21*11个节点。这些节点用φ(x,y)表示,具体的我在补充问题里面问把,如果你愿意的话,我很乐意加你成qq好友,我的q号是603404901,真的非常感谢你的帮助

  看不懂问题???? 定义函数用function [输出]=f(x,y,z)就行了

http://chinoamobi.com/xianglianghua/445.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有