matlab检查错误 函数,matlab函数工作错误

我试图在matlab中创建这样的功能

它必须是l_k的数组,从1到n,但是.

在代码中:x – 一些向量(数组),z – 标量;在代码中,w是压裂的上部,而g是较低的.

function out_l = l_k(z, x)

%вычисления массива l_k для числа z

%x - узлы интерполяции

%z - значение для которог овычисляем значение полинома

n = size(x);

w = 1;

g = 1;

out_l = zeros(n);

for k = 1:n

for j = 1:n

%вычислим w

for i=1:n

if((i ~= k) && (i ~= j))

w = w * (z - x(i));

end

end

%вычислим g

for i=1:n

if(i ~= k)

g = g * (x(k) - x(i));

end

end

end

out_l(k) = (w/g);

end

end

问题是 – 当涉及到循环时,它只是在第一次检查if语句后退出!什么是哇?

%вычислим w

for i=1:n

if((i ~= k) && (i ~= j))

w = w * (z - x(i));

end

end

%вычислим g

for i=1:n

if(i ~= k)

g = g * (x(k) - x(i));

end

end

最佳答案 线n = size(x);如果你想要n中的元素数量(大小返回维度的行向量,而不是标量),则没有意义.试试n = numel(x);代替.

稍后编辑:我也看到你像这样分配你的输出数据:out_l = zeros(n);但你应该知道它创建了一个nxn矩阵,而不是你想象的数组.尝试out_l =零(1,n);改变.

另一个建议是:如有疑问,请尽可能频繁地使用F1键. 🙂 Matlab集成的帮助非常擅长解释Matlab的东西.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值