gpt4 book ai didi

matlab - 编写简单的 matlab 函数的问题

转载 作者:行者123 更新时间:2023-12-01 19:08:45 25 4
gpt4 key购买 nike

我以前做过一些简单的 matlab 函数,但由于某种我不知道的原因,我现在尝试做的事情不起作用。

该函数如下所示:

function a = calc(t)
if t < 2.0
a = -pi/2;
else
a = 2*pi;
end

我尝试通过以下方式调用它:

a = calc(linspace(0,5))

(至少我之前已经理解过)应该生成一个带有 a 值的变量矩阵。然而,a 只是变成一个值为 2*pi 的常数。为什么它不记录 t >= 2 之前发生的事情?现在看来它只计算最后一个值(当 t = 5 时)。有人可以告诉我我做错了什么吗?

最佳答案

它不起作用的原因是因为您的函数仅设计为输出一个值。当然,MATLAB 将从数组的开头到结尾工作,因此由于您的函数仅输出一个值,因此它只会为您提供数组中最后一个值(也称为 5)的输出。因此,如果您想对值向量/矩阵执行此操作,则需要确保您的输出值 a也是同一类型。换句话说,做这样的事情:

function a = calc(t)
a = 2*pi*ones(size(t));
a(t < 2.0) = -pi/2;

让我们慢慢地过一遍这个。 a是与输入 t 大小相同的值数组/矩阵以及 a 中的每个值设置为2*pi 。之后,任何值 t < 2.0 ,我们将值更改为 -pi/2 。除此之外,它们将保持不变(即 2*pi )。请记住,当您使用 MATLAB 时,您需要确保您的输出可以适应不同形状和大小的输入。与人们处理过的其他编程语言相比,这是一种不同的思维方式,但是一旦掌握了它,它就非常容易。

关于matlab - 编写简单的 matlab 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com