最近在Cousera上机器学习的课,做作业使用的是Matlab,在写作业的过程中使用到了平时不太常用的功能,记录一下。
1. Matlab中的element-wise 功能。
- 函数名称:bsxfun()
- 使用方法:适合当向量和矩阵做元素运算的时候用。
- 函数名称:fminunc()
- 使用方法:
- 优点:比梯度下降算法收敛快。
3. 将矩阵展开成向量 unrolling:
假设有Theta_1 是10x11,Theta_2是 10x11,Theta_3是1x11,则在matlab中:
>> thetaVec = [Theta_1(:) ; Theta_2(:); Theta_3(:)];
>> size(thetaVec)
ans =
231 1
最后展成1列
4. 在cell中查找特定的字符串的索引
cell矩阵中字符的检索不能直接使用等号。
应用strcmp函数判断两个输入字符串是否相等,输入形式如下:
c = strcmp(str1,str2)比较字符串 str1 与 str2 ,若完全相等则返回 1 ,不相等返回 0
应用find函数对矩阵进行检索进一步的得到cell矩阵中特定字符所在的位置,输入形式如下:
[x,y] = find(strcmp(a,‘xx’))
a为需要检索的cell矩阵,‘xx’为特定的字符
示例如下:
>> class1 = cell(1,4)
class1 =
[] [] [] []
>> class1 = {'imagewant0','imagewant45','imagewant90','imagewant135'}
class1 =
'imagewant0' 'imagewant45' 'imagewant90' 'imagewant135'
>> [x , y] = find(strcmp(class1 , 'imagewant0'))
x =
1
y =
1