首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >八度解方程和用值创建矩阵

八度解方程和用值创建矩阵
EN

Stack Overflow用户
提问于 2015-11-17 11:00:53
回答 1查看 575关注 0票数 1

早上好..。

我需要用八度写一个函数y= interval(a)。该函数需要创建一个维数为nx2的矩阵y。每一行必须包含ymin和ymax乘以pi/ 2。

X的间隔是:

代码语言:javascript
复制
x = 0:.1:25;

输出矩阵的等式必须是:

代码语言:javascript
复制
cos(x) = exp(a*x)-1

A的值将在函数->区间(4)的参数中给出。

到目前为止我只做了这么多。这件事让我很困惑,因为我试图使倍频程计算cos(x) = exp(a*x)-1,然后在每一行中用ymin和ymax来创建矩阵nx2,乘以pi/2,但做不到。

这是我的凌乱:

代码语言:javascript
复制
function [y] = interval(a)
y = 0:.1:25;
h = @(y) cos(y);
g = @(y) exp(a*y)-1;
c = pi/2;
y = [h(y),g(y)];
interval = [y'];
end

任何解决方案.

在Nick J的注释建议之后编辑->新代码:

代码语言:javascript
复制
function [X] = intervalos(a)

% limpar a memoria de todas as vars e funções
clear functions;

% limpa consola
clc;

% intervalo para x
x = 0:.1:25;
% ambas as funções h(x) e g(x)
h = @(x) cos(x);
g = @(x) exp(a*x)-1;
% multiplicador
c = pi/2;
% saída
xh = [h(x)*c];
xg = [g(x)*c];
fprintf('Matrix X:\n');
X = [xh', xg'];

% limpar a memoria de todas as vars e funções
clear functions;

endfunction
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 11:10:11

您似乎误解了如何将值返回到函数。函数的最后一行,interval = [y'];没有任何用途。该函数将返回分配给y的最后一个值。interval只是调用函数的名称,它不是函数中的变量。

此外,您还需要注意y向量的方向和h & g的输出。目前,y是作为行向量创建的。然后,当您执行y = [h, g]时,它将创建一个非常长的行向量,其中h的值后面跟着g的值。相反,您应该将hg作为列向量,然后将它们放入y中,或者在分配给y的范围内(类似于y = [h(y)',g(y)'])。

尽管如此,我仍然不完全清楚,您所做的工作是否会产生您希望从x的等式中得到的输出。也许您可以提供一个非常简单的例子,说明对于一个小的输入,输出应该是什么样子的。或者更简单地说,你写的东西会在Matlab/Octave中运行,但我不知道你首先想要的是什么数学输出。

而且,我不认为函数中有任何对clear functions语句的真正需求。这些函数中的任何一个都是在interval函数的本地创建的,并且在该函数运行后不再存在。

编辑:好,看起来您已经固定了返回值,所以现在X的最后一个定义将由函数返回,这将是一个nx2矩阵。

编辑:现在更清楚的是,作为一个输出,您想要得到什么。您正在尝试生成一个矩阵,其中包含x方程的左右两边的值。在此之前,还不清楚y是如何从没有y的等式中产生的。可以更明确地说,您希望生成矩阵[cos(x)*pi/2,exp(a*x-1)*pi/2],因为您上面所写的等式根本没有进入这个过程。

此时,您的功能可以简单地是:

代码语言:javascript
复制
function output_matrix = interval(a)
  x = [1:.1:25]';
  output_matrix = [cos(x),(exp(a*x)-1)]*pi/2;
endfunction
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33755250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档