Octave 入门

来源:互联网 发布:国外大数据最牛公司 编辑:程序博客网 时间:2024/06/05 17:41


一、octave安装


Mac下安装octave


二、octave基本语法(basic operations)


1、进入octave


2、5+6



3、3-2



4、5*8



5、1/2



6、2^ 6



7、1==2 %false(百分号这是注释)



8、1 ~= 2 (1不等于2,波浪线加等号)



9、1 && 0 %AND  (与运算)



10、1 || 0 %OR(或运算)



11、xor(1,0) (异或)


12、简化提示 PS1('>> ');


13、变量赋值,可以在末尾加分号,让其不输出



14、disp的用法


15、format 控制输出长短格式


16、定义一个矩阵(分号起到换行的作用)


17、行向量和列向量


18、v = 1:0.1:2(从1到2,步长为0.1增加产生的行向量)


19、v = 1:6



20、ones(2,3)



21、rand(2,3)


22、randn(2,3) (高斯随机变量)



23、生成一个1行10000列的矩阵,乘以10平方,减去6,再用hist(w)画出




24hist(w,50)画出有50条柱




25、eye(4)单位矩阵



26help使用

例如:help eye就会显示eye函数的一些使用方法,同理help randhelp help可以查看help指令的一些使用方法



三、octave下操作数据(computing on data)


1、A(3,2)



2、A(2,:)


3、A(:,2) (第二列所有元素)



4、A([1 3],:) (取第一列和第三列所有元素)



5、替换矩阵中的某列



6、在矩阵右边添加列




7、size(A)


8、A(:)  %(将A中所有元素放入到一个列向量里)


9、矩阵横向合并 C = [A B]




10、矩阵纵向合并C = [A ; B]


11、[A B] 和 [A ; B]输出结果相同



12、矩阵相乘 A * C 



13、矩阵对应元素相乘 A .* B(octave中点号一般表示元素位运算)



14、A .^2



15、1 ./ v



16、1 ./ A



17、自然对数 log(v)



18、指数运算 exp(v)



19、绝对值abs(v) 



20、-v



21、将向量中元素加一 (等价于v+1)



22、矩阵的转置



23、max(a)



24、[val,ind] = max(a)



25、max(A)



26、a < 3



27、find(a<3)



28、魔幻阵 A = magic(3) (所有行列对角线上的数字加起来和相同)



29、[r,c] = find(A >= 7)



30、sum(a)



31、prod(a) (乘积)



32、floor(a) (向下舍去)



33、ceil(a) (向上入一)



34、max(rand(3),rand(3)) (逐一比较生成的两个随机矩阵,选择较大那个)



35、选取矩阵每一列和每一行的最大值,max(A)默认每一列最大值



36、找出矩阵最大值 max(max(A)) 或者 max(A(:)) 



37、矩阵求每一列的和 sum(A,1)



38、矩阵求每一行的和 sum(A,2)



39、A .*eye(9)



40、sum(sum(A .*eye(9)))



41、对角线翻转 flipud(eye(9))



42、逆矩阵 pinv(A)




四、用octave画图(plotting data)


1、正弦函数




2、余弦函数




3、同时画正弦,余弦函数(完整图)(路径+print -dpng 'myplot.png' 可以保存图)




4、 subplot使用




5、改变轴的刻度




6、清除 

clf;


7、可视化矩阵








五、octave的控制语句(for, while, if statements


1、for



2、while



3、break, if



4、if else



六、octave向量化


一行语句就可以实现



C++中的实现


在之前的例子中,我们知道theta是要逐一求解,他们是同步更新的,所以可以把它们转化为向量求解,他们的维数是相同的,转换求解可以简化很多步骤。