2019-02-15 Octave控制语句及函数

>> v = zeros(10,1)
v =

   0
   0
   0
   0
   0
   0
   0
   0
   0
   0

>> for i=1:10,
>     v(i) = 2^i;
> end;

>> v
v =

      2
      4
      8
     16
     32
     64
    128
    256
    512
   1024

 

>> indices = 1:10
indices =

    1    2    3    4    5    6    7    8    9   10


>> for i=indices,
>     disp(i);
> end;
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10

 

>> i = 1;
>> while i<=5,
>     v(i) = 100;
>     i++;
> end;

 

>> i=1;
>> while true,
>     v(i) = 999;
>     i++;
>     if i==6,
>         break;
>     end;
> end;

 

>> if v(1)==1,
>     disp('The value is one');
> elseif v(1)==2,
>     disp('The value is two');
> else
>     disp('The value is not one or two');
> end;

 

函数,需要先建一个.m文件:

function y = squareThisNumber(x)     %文件名和函数名一样
y = x^2;
>> squareThisNumber(5)     %调用函数
ans =  25

 

将代码文件所在路径添加到Octave系统搜索路径中:
这样即使你在别的路径下,也可以调用代码文件所在路径下的文件函数了。

>> addpath('C:\Users\mei\Workspaces\Octave_codes')

 

多返回值函数:

function [y1,y2] = squareAndCubeThisNumber(x)
y1 = x^2;
y2 = x^3;
>> [y1,y2] = squareAndCubeThisNumber(2)    %调用函数
y1 =  4
y2 =  8

 

 

应用举例:简单的训练数据集:

>> X = [1 1; 1 2; 1 3]
X =
   1   1
   1   2
   1   3

>> y = [1; 2; 3]
y =
   1
   2
   3

编写代价函数 costFunctionJ.m:

function J = costFunctionJ(X, y, Theta)
% X is the "design matrix" containing our training examples.
% y is the class labels
% Theta is the Hypothesis's parameters is a vector.

m = size(X, 1)           % number of training examples
predictions = X*Theta;   % predictions of hypothesis on all m examples
sqrErrors = (predictions-y).^2;    % square errors
J = 1/(2*m) * sum(sqrErrors); 

假设我们已训练好了参数:
参数为0,1时:

>> Theta = [0; 1]    % h = 0 + 1*x
Theta =
   0
   1

>> j = costFunctionJ(X,y,Theta)
m =  3
j = 0     

%代价为0,说明该Theta参数用在假设函数上,假设函数和训练数据集拟合的很好

我们将参数设置为0,0,验证一下我们写的代价函数的正确性:

>> Theta = [0; 0]    % h = 0 + 0*x
Theta =
   0
   0

>> j = costFunctionJ(X,y,Theta)
m =  3
j =  2.3333      %参数都为0时误差这么大

>> sum((0-y).^2)/(2*3)    %假设函数为0时,代价就是这么算的
ans =  2.3333             %验证正确
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 0:00 在这段视频中告诉你怎样为你的 Octave 程序写控制语句诸如"for" "while" "if" 这些...
    刷刷人工智能阅读 2,460评论 0 0
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,718评论 0 10
  • 2019.1.13 其实,当了妈妈以后也有太多的好处…哈哈!自己拖延症的自愈、懒惰的远离、为了孩子们时刻准备着,生...
    陈一宁妈妈阅读 248评论 0 4
  • 如果你喜欢一个人 请不要剥夺她的自由 因为即使是飞鸟 也受到天空的束缚 万一你意识到她不喜欢你 而你终于确定了这点...
    勿忘肩上风阅读 117评论 0 6
  • 阳春三月,到处鸟语花香。王振赶着小马车,嘴里哼着小曲,悠哉悠哉…… 王振是一个聪明的男人,在二三十年代一个农民知道...
    幸福童年阅读 597评论 0 5