我写了一个小程序来测试一些功能。
这是项目:
close all;
clear all;
f = @(x, n) power(-1,(n-1)./2) .* power(x, n) ./ factorial(n);
n = [0,3,5,10,50,100];
% n = 0:10:100;
x = linspace(0, 4*pi, 1000);
ax = axes('nextplot', 'add');
for k = 1:length(n)
plot(ax, x, f(x, n(k)), 'displayname', ['f_', int2str(n(k)), '(x)']);
end
对我来说,主要的问题是我认为结肠符号(1:10)定义了数值相等的数组。
在我的计划中并非如此。
当我将n设置为[0,3,5,10,50,100]并且将n设置为0:10:100时,程序的输出存在差异。
在第一个版本中,使用数组,程序工作正常,但是第二个版本,使用冒号表示,程序不起作用,它只是在0处绘制一条线。
所以我的问题是这种情况发生了吗?我的意思是如果冒号和数组定义相同,为什么程序的冒号和数组符号的输出不同?
我错过了什么东西?
谢谢!
编辑: 这是我得到的情节: 第一个id数组表示法,第二个是冒号表示法。 我正在使用mathlab R2013a
答案 0 :(得分:2)
在评论栏中
% n=[0:10:100];
创建一个值为0到100的向量,间距为10,即[0 10 20 30 40 50 60 70 80 90 100]
。
使用未注释的行
n=[0 3 5 10 50 100];
您拥有指定的值。
由于它们不是相同的输入,因此您无法获得相同的输出。