我需要帮助了解如何编码以下问题。任何帮助将不胜感激!具有不同参数的Matlab函数
创建将采取x
矢量/阵列输入(1 by n
)和a
一个标量输入,并产生由下式所定义的输出的函数:
y(x,a)=((xsin(ax-2))/(sqrt(1+(ax)^2)
-π ≤ x ≤ π
a={.5 1 1.5 2}
方程式必须被矢量条款为x
,函数的输出为数组y
,它与数组x
具有相同的尺寸。
编写一个调用此函数的脚本来计算y(x,a)
,其范围为上面定义的x
以及参数a
的每个值。对于每个值a
,应使用解矩阵的不同行将结果存储在解矩阵中。
到目前为止我的功能,我有:
function [y] = part1(a,x)
y=((x*sin(a*x-2))/(sqrt(1+(a*x).^2)));
end
我不知道我怎么输出这个到解矩阵
对于我的剧本有:
%%
clear,clc
a={0.5 1 1.5 2};
x=-pi:0.1:pi;
for
part1(x,a)
end
我当我现在运行这个时出现以下错误:
Undefined function 'mtimes' for input arguments of type 'cell'.
Error in part1 (line 4)
y=((x*sin(a*x-2))/(sqrt(1+(a*x).^2)));
Error in labtest2 (line 8)
y(i,:)=part1(x,a(i));
编辑
我做了一些更改,仍然收到一些我无法解决的错误。
这里其次是完整的代码我的功能完整代码的脚本:
功能
function [y] = part1(x,a)
nx=numel(x);
na=numel(a);
y=((x.*sin(a.*x-2))./(sqrt(1+(a.*x).^2)));
size(y)=[nx na]
end
脚本
%%
clear,clc
a={0.5 1 1.5 2};
x=-pi:0.1:pi;
for i = 1:length(a)
y(i,:)=part1(x,a(i));
end
错误
Undefined function 'times' for input arguments of type 'cell'.
Error in part1 (line 6)
y=((x.*sin(a.*x-2))./(sqrt(1+(a.*x).^2)));
Error in labtest2 (line 8)
y(i,:)=part1(x,a(i));
好吧,我搞掂代码中的一些错误,并让你建议的修改,但我仍然有两个问题 1.如何分配输出第一部分的解决方案矩阵? 2.我的代码目前看起来像这样: a = {0.5 1 1.5 2}; x = -pi:0.1:pi;对于i = 1:长度(a) y(i,:)= part1(x,a(i)); 结束 我在这里得到一个错误,指出“labtest2(第8行) y(i,:)= part1(x,a(i))中的错误;” –
猜我不能在代码中添加代码... 我正在用新的问题/错误更新原始问题 –
我刚刚检查了你的函数 - 你需要使用逐个元素的乘法。看到我的编辑,马上就来。 –