Matlab编程学习笔记【待续】

最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C、C++,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方。

  1. 矩阵单元元素访问方式:A(1,2)---A[1][2]
  2. 选取矩阵某个行或者列:A(:,1);%选取矩阵第一列.A(1,:);%选取矩阵第一行
  3. 矩阵单元以及数组等起始下标:行和列都是从1开始,A(1,1)为第一个元素 A(0,1)则是越界 相应的A(1,columns)不越界
  4. Matlab矩阵的存放是列优先,而我们平时的都是行优先。例如:A是一个2行2列的矩阵。A(2)代表的是A(2,1)而不是A(1,2)
  5. 运算符号:~表示! ,| & 相应的表示|| &&
  6. 字符串表示方式:单引号‘’,而C中则是双引号““,因此在做字符比较的时候,不能用 c == '\n' 要知道'\n'表示的是一个字符串了。此时则需要用ASCII码代替。c==10
  7. 转换函数:字符串转数值str2num(...)
  8. Matlab的矩阵格式可以为:[1,2\n3,4\n5,6\n],因此在编程生成数据时候,我们可以按照这种格式生成实验数据,然后直接复制到Matlab中就可以实现矩阵的赋值了。这样就不用使用文件读取那么麻烦了。

这里附上一个自己第一次编写的M文件:功能是从文本数据中读取格式数据

 my.txt文本内容:

 

 实现代码如下:

read.m
 1 %
2 %write a program for reading files
3 %
4 fid=fopen('my.txt','r');
5 %
6 %set j=1 notice:matlab first index is 1 not 0.
7 %
8 i=1;
9 j=1;
10 flag=0;
11 while ~feof(fid)
12 s=fgets(fid);
13 temp='';
14 for k=1:length(s) %|| (s(k))==EOF
15 if (s(k)==32 | s(k)==10) % ''10 % '\n'
16 if flag==1 %last char is not ''
17 %fprintf(1,'temp=%s\n',temp);
18 A(i,j)=str2num(temp);
19 %fprintf(1,'A[%d][%d]=%f\n',i,j,A(i,j));
20 j=j+1;%add columns
21 temp='';
22 end
23 flag=0;
24 else
25 %connect the new char to temp
26 temp(length(temp)+1)=s(k);
27 flag=1;
28 end
29 end
30 %%
31 i=i+1;%add rows
32 j=1;%re set j=1 notice:matlab first index is 1 not 0.
33 end
34 if flag==1
35 [rows,columns]=size(A);
36 A(rows,columns)=str2num(temp);
37 %fprintf(1,'A[%d][%d]=%f\n',i-1,j,A(i-1,j));
38 flag=0;
39 temp='';
40 end
41 fclose(fid);
42 A

 另外:str='\n' 那么str(1)=\ str(2)=n 而不是str(1)=\n换行符。故而在实际使用时候应用其ASCII码10代替。其他的字符这不需要。

str=',' ,replaced by str(1),类似的其他一般字符都可以这么操作。

M文件编写,函数调用

     函数定义形式:function[输出变量列表]=函数名(输入变量列表)

                           函数体语;

注意事项:当输入变量多于一个时,应该用方括号,输入变量多于一个时应该用逗号隔开,编写完以后必须以函数名存盘,否则不能被调用,函数M文件不能访问工作区中

的变量。例如:one output variable                                                      two output variable

                   %filename:sci.m                                                             % filename:sc.m

                   function y=sci(x)                                                             function[y,z]=sc(x)

                         ..............                                                                         .........

基本的绘图控制

    在调用plot时可以指定颜色、线型和数据点图标,基本格式为:plot(x,y,'color-linestyle-marker')

当只指定数据点图标时,数据点将不连成线,而只画出一个个孤立的数据点。字符串参数的取值如下:

颜色:y(黄);r(红);g(绿);b(蓝);w(白);k(黑);m(紫);c(青)

线型:-(实线);:(点线);-.(虚点线);- -(虚线).

数据点图标:.;+;*;o(小圆圈);pentagram(五角星)等等,

这些标记符的大小、形状、填充等详细可查看:http://blog.csdn.net/benjmzhu/article/details/7246892

 

plot(t,sin(2*t),'-mo',...
                'LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor',[.49 1 .63],...
                'MarkerSize',12)

 

    坐标系的控制:不特别指定时,matlab自动指定图形的横纵坐标比例和显示的范围,如果不满意,可用axis命令来控制,常用的有:

   axis([xmin xmax ymin ymax]) []中分别给出x轴和y轴的最小、最大值

   axis equal x轴和y轴的单位长度相同

   axis square 图框呈方形

   axis off 取消坐标轴

图形标注

xlabel,ylabel,zlabel,title

text和gtext用于在图形中特定的位置加字符串,前者字符串的位置在命令中指定,后者用鼠标指定;

grid在图形上加网格。

多幅图像:subplot(m,n,p)可在同一个图形窗口中,画出多福不同图像。

三维图形

空间曲线:plot3(x,y,z)

带网格的曲面:[X,Y]=meshgrid(x,y);mesh(X,Y,Z);surf(X,Y,Z)

高等线:二维三维高等线函数contour,contour3

打开另外一个图形窗口命令:figure(n)

Matlab编程网上资料收集:

MATLAB通用图形函数命令 matlab之基本绘图函数   http://wenku.baidu.com/view/f451ff84bceb19e8b8f6ba8f.html

matlab设置图中字体和线条大小等  http://wenku.baidu.com/view/9f865323aaea998fcc220e5e.html

 

待续。。。。。。

         

转载于:https://www.cnblogs.com/wintergrass/archive/2011/11/10/2244961.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

animation 先执行一次 在持续执行_这一次,彻底弄懂 JavaScript 执行机制

本文来源:ssssyokihttps://juejin.im/post/6844903512845860872不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序…

[scikit-learn 机器学习] 5. 多元线性回归

文章目录1. 多元线性回归2. 多项式回归3. 正则化4. 线性回归应用举例(酒质量预测)4.1 数据预览4.2 模型验证5. 梯度下降法本文为 scikit-learn机器学习(第2版)学习笔记1. 多元线性回归 模型 yαβ1x1β2x2...βnxny \alpha\bet…

LeetCode 831. 隐藏个人信息

1. 题目 给你一条个人信息字符串 S,它可能是一个 邮箱地址 ,也可能是一串 电话号码 。 我们将隐藏它的隐私信息,通过如下规则: 电子邮箱 定义名称 name 是长度大于等于 2 (length ≥ 2),并且只包含小写…

bootstrap 树形表格渲染慢_layUI之树状表格异步加载组件treetableAsync.js(基于treetable.js)...

概述后台框架中使用树状表格是非常常用的操作,layUI本身并没有这种组件。 第三方的treetable.js做到了完美的实现,但是不能实现在双击时异步加载数据,本文就是站在了巨人的肩膀上实现的异步加载的树状表格~1. 使用说明本组件基于treetable.js…

[scikit-learn 机器学习] 6. 逻辑回归

文章目录1. 逻辑回归二分类2. 垃圾邮件过滤2.1 性能指标2.2 准确率2.3 精准率、召回率2.4 F1值2.5 ROC、AUC3. 网格搜索调参4. 多类别分类5. 多标签分类5.1 多标签分类性能指标本文为 scikit-learn机器学习(第2版)学习笔记逻辑回归常用于分类任务 1. 逻…

libsvm回归参数寻优cgp_【lightgbm/xgboost/nn代码整理二】xgboost做二分类,多分类以及回归任务...

1.简介该部分是代码整理的第二部分,为了方便一些初学者调试代码,作者已将该部分代码打包成一个工程文件,包含简单的数据处理、xgboost配置、五折交叉训练和模型特征重要性打印四个部分。数据处理部分参考:代码整理一,这…

[scikit-learn 机器学习] 7. 朴素贝叶斯

文章目录1. 朴素贝叶斯2. NB 与 逻辑回归对比本文为 scikit-learn机器学习(第2版)学习笔记相关知识参考:《统计学习方法》朴素贝叶斯法(Naive Bayes,NB) 1. 朴素贝叶斯 通过最大概率来预测类&#xff1a…

塔菲克蓝牙适配器驱动_小身材,大功能,biaze毕亚兹USB蓝牙适配器开箱体验

在日常生活中,我们平时使用的台式电脑或是笔记本电脑,想要传输数据或者音频的时候,都是需要借助数据传输线或是U盘等传输设备,使用过程可想而知,有点麻烦。我们都知道,手机是有蓝牙传输功能的,只…

HDU1003——MAX SUM

简单DP&#xff0c;状态转移公式&#xff1a;num[j].data max{num[j].data, num[j].datanum[j-1].data}&#xff0c;也就是保证加上前一个数不失自己的值减小。 View Code #include <stdio.h>#define N 100010#define inf 9999999struct _num{int data;int pre;int nex…

[scikit-learn 机器学习] 8. 非线性分类和决策树

文章目录1. 特征选择标准2. 网页广告预测2.1 数量处理2.2 网格搜索模型参数3. 决策树优缺点本文为 scikit-learn机器学习&#xff08;第2版&#xff09;学习笔记相关知识&#xff1a;《统计学习方法》决策树&#xff08;Decision Tree&#xff0c;DT&#xff09; 1. 特征选择…

智慧新泰时空大数据与云平台_智慧警务大数据云平台开发情报研判系统解决方案...

智慧公安作为公安信息化开展到高级阶段的一种警务形态&#xff0c;“智慧公安”主要采用物联网、云计算、无线通讯、智能动态感知分析等新一代信息技术,将公安工作IT根底设备与物理设备、人际环境等高度交融,以提供智能化公安决策与效劳。智慧警务大数据云平台开发情报研判系统…

RGB颜色查询对照表#FFFFFF

大致是下图这样的&#xff0c;有需要的可以点击下面的连接复制使用&#xff1a; https://www.114la.com/other/rgb.htm

ikbc机械键盘打字出现重复_超小无线机械键盘,绝佳移动打字体验

NuType筹资信息产品名称NuType上线平台Kickstarter发起团队NUPHY发起地区中国香港目标金额80,000HKD筹集金额1,301,212HKD完全进度1,627%支持人数1,612最低价格697HKD上线时间2019/11/13-2019/12/28创次方/制表时间&#xff1a;2019年12月28日文/大智笔电键盘的打字体验远不及桌…

MySQL - 定时任务(每天凌晨1点、每小时、每分钟、某一时间点)

常用的一定要写在前面 # 从2019-10-11开始&#xff0c;每天的00:30:00执行定时任务 ON SCHEDULE EVERY 1 DAY STARTS 2019-10-11 00:30:00 # 每天的凌晨1点执行定时任务 ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)# 特…

极光无限渗透测试面经_认识工业以太网及线缆测试

工业以太网由于其固有的可靠性、高性能和互操作性&#xff0c;已经渗透到工厂车间&#xff0c;成为自动化和控制系统的首选通信协议。近年&#xff0c;工业以太网的市场份额已经超过了传统的现场总线协议&#xff0c;总线协议通常需要多个独立和专有的布线设施。为了满足工业环…

LeetCode 286. 墙与门(BFS)

文章目录1. 题目2. 解题2.1 BFS 超时解2.2 从门开始逆向BFS1. 题目 你被给定一个 m n 的二维网格&#xff0c;网格中有以下三种可能的初始化值&#xff1a; -1 表示墙或是障碍物0 表示一扇门INF 无限表示一个空的房间。然后&#xff0c;我们用 231 - 1 2147483647 代表 INF…

法斗几个月长鼻筋_路医生说丨脚底板早起一下地特别疼?得了足底筋膜炎,该怎么办?...

老李很奇怪&#xff0c;他压根就没有受过伤&#xff0c;怎么突然就脚底板疼了起来。就是这两天走的稍多了点&#xff0c;也不知道为什么脚底板就开始疼了&#xff0c;走路踩地就疼&#xff0c;尤其是早晨起床脚一踩地&#xff0c;那酸爽简直了&#xff0c;刚下地的前几步走起来…

Power BI连接MySQL 提示错误......未能加载文件或程序集......或它的某一个依赖项

Power BI连接MySQL数据库时报错&#xff1a; 提示错误未能加载文件或程序集“MySql.Data, Version5.1.4.0, Cultureneutral,........”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 解决办法&#xff1a;下载MySQL.Data.dll(5.1.4)程序集&#xff01; 解压…

LeetCode 346. 数据流中的移动平均值(队列)

文章目录1. 题目2. 解题1. 题目 给定一个整数数据流和一个窗口大小&#xff0c;根据该滑动窗口的大小&#xff0c;计算其所有整数的移动平均值。 示例: MovingAverage m new MovingAverage(3); m.next(1) 1 m.next(10) (1 10) / 2 m.next(3) (1 10 3) / 3 m.next(5) …

系统错误_Win10系统提示0x80004005错误的解决方法

win7系统虽然身手大家喜爱&#xff0c;但是最新的PC和笔记本电脑想要装win7很难了&#xff0c;所以现在越来越多人开始使用Win10系统&#xff0c;但是&#xff0c;最近有用户在使用win10系统的时候&#xff0c;发现因为电脑没有正确注册某些动态链接库文件&#xff0c;或者计算…