matlab中函数表达式的写法

x=[2005 2006 2007 2008 2009 2010 2011 2012 2013 2014];
y=[827.75 871.1 912.37 954.28 995.01 1037.2 1046.74 1054.74 1062.89 1077.89];
p=polyfit(x,y,2);
a=p(1);
b=p(2);
c=p(3);
yy=a.*x^2+b.*x^1+c;
plot(x,y,'r*',x,yy,'b');

总是说我倒数第二行不对,应该怎么改,谢谢。

用来查找a中小于0项的位置。

>> a=[1,-1,-3;2,3,5;2,-2,-4]

a=

1-1-3

235

2-2-4

>> b=find(a<0)   

b=

4

6

7

9

虚数

>> a=3+4j;

>> b=5+6j;

>> c=a*b

c=

-9.000000000000000+38.000000000000000i

>> format long g                   %关闭format long

>> c

c=

-9+38i

虚数计算

>> A=[3,4;5,6]+i*[1,2;7,8]

A=

3+1i4+2i

5+7i6+8i

>> A=[3,4;5,6]+i*[1,2;7,8];

>> A+10i

ans=

3+11i4+12i

5+17i6+18i。

扩展资料

注意事项:

1、A[]可以用来表示空矩阵。

2、设A[234;678;012],则可以用下面方法取出A中的元素:A(1,2)=3,A(3,3)=2;

两个数字中第一个是行,第二个是列。

运算符

MATLAB中所用运算符共有三类:

(1)、算术运算符:加减乘除,平方开方

(2)、关系运算符:大于小于等。

(3)、逻辑运算符:与或非。

算术运算符:矩阵相乘与阵列相乘,“/”,“./”矩阵右除与阵列右除,“\”,“.\”矩阵左除与阵列左除。

2.变量的规定与运算

在矩阵表示中,每一行的各元素之间可以用空格或者,来分开。行与行之间用;分开,在矩阵名处加上一个单引号代表转置。凡是以“i”或“j”结尾的变量都视为虚数变量。

正常情况下MATLAB保留四位一下小数,但是如果在前面加上一句formatlong保留更多位。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16

针对你的倒数第二行的问题,是行向量的2次方同样需要加 一个 ".",跟a.*x的概念一样。


x=[2005 2006 2007 2008 2009 2010 2011 2012 2013 2014];

y=[827.75 871.1 912.37 954.28 995.01 1037.2 1046.74 1054.74 1062.89 1077.89];

p=polyfit(x,y,2);

a=p(1);

b=p(2);

c=p(3);

yy=a.*x.^2+b.*x.^1+c;

plot(x,y,'r*',x,yy,'b');


在计算过程中还有一个关于系数的问题,我认为你的x向量是年代的含义,并不具有数字的含义,在这种情况下得到的系数 会差别很大,比如本例c=-1.2249e+07。所以如果用x=linspace(1,10,10);来替代,则计算过程中不会有错误提示,另外,系数a ,b c也相对合理。

下图是计算结果:

追问

恩,但是横坐标不是年份放在论文里不好说啊,我可以x=linspace(2005,1,2014);么?

本回答被提问者采纳
第2个回答  2015-07-13
x是数组,就算符号要带.,a是个单参可以不带点追问

我是按照之前的笔记改的。