matlab小问题记录(不断更新)

x.与x的区别

x如果是一个数,x.与x没有区别;当x是一个矩阵时,二者运算不同了

举例,x=[1 ,1;2,2]  x.^2=[1,1;4,4]  x^2=[3,3;6,6]

不带点是矩阵相乘,带点是对应元素相乘

函数表达式中有除法的问题

举例:x=0:0.1:1,而直接写y=1/(1+x^2); 是会报错的
要写成 y=1./(1+x.^2);
如果画图的话,可以直接用表达式ezplot('y=1/(1+x^2)',[xmin, xmax, ymin, ymax ]);

向量与数的计算

是向量中每个元素与数进行四则运算

a版与b版区别

一个是上半年,一个下半年发布

数据挖掘线性回归解方程组法的matlab代码

 X= csvread('C:\Users\Administrator\Desktop\train.csv',1,2);
 Y= csvread('C:\Users\Administrator\Desktop\train.csv',1,1,[1 1 10000 1]);
 a = 1e-6;
 b = linspace(1,1,10000);
 X = [b' X]
 Z= inv(X'*X+a*eye(385))*X'*Y;
 S= csvread('C:\Users\Administrator\Desktop\test.csv',1,1);
 ID=csvread('C:\Users\Administrator\Desktop\test.csv',1,0,[1 0 10000 0]);
 S =[b S];
 ANS = S*Z;
 ANS =[ID ANS];
 dlmwrite('result.txt', ANS);%一行一行输出
 %fid = fopen('result.txt','wt');
 %fprintf(fid,'%d, %f \n',ANS); fprintf是一列一列输出
csvread是读入csv格式的数据文件,1,2时第一个数据的横纵位置,后面再加一个矩阵[a b c d]是读取文件中(a,c)(b,d)为对角线的矩阵所有元素

b生成全为1的行向量

inv()矩阵求逆

A‘,引号表示求转置

[b s]表示由b,S复合成一个新矩阵

& 与 && 的区别

matlab条件表达式中,&&就是c中短路求值,& 不是,是每个条件都判断然后再去整体判断


 数组访问x(i)取第i个元组
 相同行的元素由空格或','分隔,不同行有回车或分号分隔

 
### linspace(x1,x2,N)
    功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行线性的矢量。
    其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100
    
### rand()
    rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。
    Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。
    Y = rand(m,n)  Y = rand([m n]) 返回一个m x n的随机矩阵

你可能感兴趣的:(课程相关)