【问题标题】:Matlab function input for a input that changes用于更改输入的 Matlab 函数输入
【发布时间】:2013-05-05 21:32:06
【问题描述】:

调用函数时如何使用不断变化的输入?我遇到的问题是我必须在Matlab中为抛物线偏微分方程的显式方法编写代码,初始条件为u(x,0) =sin(pi*x)

调用我写的函数时

explicit( 0,0,sin(pi*x),0,0,1,0,1,3,2,0.25,0.25)

其余的输入函数指的是不同的值和边界条件。

sin(pi*x) 对我来说是指代码的问题区域。在我为这个边界条件编写的代码中

for j = 1:(n+2)
i = (n+2)
 x = (a -h) + h*j
 u(i,j) = Y_below
end

Y_below 指的是u(x,0) = sin(pi*x)

当边界条件Y_below 等于任何数字时,这完全符合我的要求。我不知道如何在调用我的函数时使用不断变化的 x

我试过谷歌,我能得到的最接近的是 varargin,但我不知道如何使用它。 我是 Matlab 的新手,这是我必须为作业编写的第一个程序。任何帮助将不胜感激!

【问题讨论】:

  • 改x是什么意思?调用函数后值会发生变化,还是只是一个可以有不同长度的向量?
  • x根据函数内部的循环改变它的值

标签: matlab


【解决方案1】:

我不确定这是否是您正在寻找的,但是
如果你定义你的函数如下:

function output = myfunction(input1, input2, varargin)

那么varargin 是一个收集所有参数的无效参数
除了 input1、input2 之外的其他参数。这意味着
如果你调用这个函数如下:

outp = myfunction(inp1, inp2, inp3, inp4, inp5);

那么在这个函数中,以下内容将成立:

input1 = inp1;
input2 = inp2;
varargin{1} = inp3;
varargin{2} = inp4;
varargin{3} = inp5;

您可以检查(在函数内) 使用nargin 传递参数。

【讨论】:

  • 这确实有助于至少理解 varargin 函数,尽管该函数并不完全符合我的想法。然而,我刚刚决定当像 sin(pi*x) 这样的人进入函数代码本身时进入边界,然后它就可以正常工作了。
猜你喜欢
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 2017-01-12
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多