最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C、C++,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方。
- 矩阵单元元素访问方式:A(1,2)---A[1][2]
- 选取矩阵某个行或者列:A(:,1);%选取矩阵第一列.A(1,:);%选取矩阵第一行
- 矩阵单元以及数组等起始下标:行和列都是从1开始,A(1,1)为第一个元素 A(0,1)则是越界 相应的A(1,columns)不越界
- Matlab矩阵的存放是列优先,而我们平时的都是行优先。例如:A是一个2行2列的矩阵。A(2)代表的是A(2,1)而不是A(1,2)
- 运算符号:~表示! ,| & 相应的表示|| &&
- 字符串表示方式:单引号‘’,而C中则是双引号““,因此在做字符比较的时候,不能用 c == '\n' 要知道'\n'表示的是一个字符串了。此时则需要用ASCII码代替。c==10
- 转换函数:字符串转数值str2num(...)
- Matlab的矩阵格式可以为:[1,2\n3,4\n5,6\n],因此在编程生成数据时候,我们可以按照这种格式生成实验数据,然后直接复制到Matlab中就可以实现矩阵的赋值了。这样就不用使用文件读取那么麻烦了。
这里附上一个自己第一次编写的M文件:功能是从文本数据中读取格式数据
my.txt文本内容:
实现代码如下:read.m
%
%write a program for reading files
%
fid=fopen('my.txt','r');
%
%set j=1 notice:matlab first index is 1 not 0.
%
i=1;
j=1;
flag=0;
while ~feof(fid)
s=fgets(fid);
temp='';
for k=1:length(s) %|| (s(k))==EOF
if (s(k)==32 | s(k)==10) % ''10 % '\n'
if flag==1 %last char is not ''
%fprintf(1,'