冒号(:)等于数组(向量)

时间:2014-09-30 10:58:17

标签: matlab

我写了一个小程序来测试一些功能。

这是项目:

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

Array Notation

Colon notation

1 个答案:

答案 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];

您拥有指定的值。

由于它们不是相同的输入,因此您无法获得相同的输出。