function [h, display_array] = displayData(X, example_width)
%DISPLAYDATA Display 2D data in a nice grid
% [h, display_array] = DISPLAYDATA(X, example_width) displays 2D data
% stored in X in a nice grid. It returns the figure handle h and the
% displayed array if requested.
% Set example_width automatically if not passed in
if ~exist('example_width', 'var') || isempty(example_width)
example_width = round(sqrt(size(X, 2)));
end
% Gray Image
colormap(gray);
% Compute rows, cols
[m n] = size(X);
example_height = (n / example_width);
% Compute number of items to display
display_rows = floor(sqrt(m));
display_cols = ceil(m / display_rows);
% Between images padding
pad = 1;
% Setup blank display
display_array = - ones(pad + display_rows * (example_height + pad), ...
pad + display_cols * (example_width + pad));
% Copy each example into a patch on the display array
curr_ex = 1;
for j = 1:display_rows
for i = 1:display_cols
if curr_ex > m,
break;
end
% Copy the patch
% Get the max value of the patch
max_val = max(abs(X(curr_ex, :)));
display_array(pad + (j - 1) * (example_height + pad) + (1:example_height), ...
pad + (i - 1) * (example_width + pad) + (1:example_width)) = ...
reshape(X(curr_ex, :), example_height, example_width) / max_val;
curr_ex = curr_ex + 1;
end
if curr_ex > m,
break;
end
end
% Display Image
h = imagesc(display_array, [-1 1]);
% Do not show axis
axis image off
drawnow;
end
maltab课程实验
需积分: 0 160 浏览量
更新于2024-01-12
收藏 30.85MB ZIP 举报
【MATLAB课程实验详解】
MATLAB,全称“Matrix Laboratory”,是一种高级的编程环境,专为数值计算、符号计算、数据分析、图像处理、信号处理以及算法开发而设计。在MATLAB课程实验中,学生通常会接触到一系列核心概念和技术,包括矩阵操作、函数定义、绘图技术、控制流结构、编程技巧等。
一、基础操作与语法
MATLAB的基础在于矩阵和数组的操作,所有的计算都是基于这些数据结构进行的。学习过程中,理解向量、矩阵的创建、索引和运算至关重要。例如,用`eye(n)`创建单位矩阵,用`zeros(m,n)`或`ones(m,n)`生成零矩阵或一矩阵。此外,掌握基本的算术运算符(如`+`、`-`、`*`、`/`)以及比较运算符(如`==`、`>`、`<`)也是必要的。
二、函数与脚本
MATLAB中的函数是进行复杂计算的核心工具。通过定义函数文件,我们可以封装一组操作,使其可重复使用。函数定义以`function`关键字开始,如`function y = myfun(x)`。同时,MATLAB脚本(`.m`文件)用于执行一系列命令,它们不返回值,但可以改变工作空间的变量。
三、控制流语句
学习如何使用条件语句(如`if...else...end`)、循环语句(如`for`和`while`)以及逻辑运算符(如`&&`和`||`),是控制程序流程的关键。这些结构使得MATLAB代码能够根据不同的条件执行不同分支,或重复执行某段代码直到满足特定条件。
四、绘图功能
MATLAB的强大之处还在于其丰富的图形绘制能力。通过`plot`函数,我们可以绘制2D和3D图形,如线图、散点图、柱状图等。`surf`和`mesh`函数则用于绘制曲面和网格图。另外,`xlabel`、`ylabel`、`title`等函数用于添加图例,`grid on`和`box on`可以增强图形的可读性。
五、数值分析与优化
MATLAB提供了许多内置函数来处理数值分析问题,如解线性方程组(`linsolve`)、求解非线性方程(`fsolve`)、数值积分(`quad`)以及最优化问题(`fminunc`、`fmincon`)。理解和运用这些工具,能解决许多实际工程和科研中的问题。
六、符号计算
MATLAB的Symbolic Math Toolbox允许进行符号计算,它能处理未定的符号变量,进行代数运算、微积分、解方程等。这对于理论分析和简化复杂表达式非常有用。
七、数据处理与信号分析
MATLAB在数据处理和信号分析方面也有强大的支持。例如,`load`和`save`函数用于导入和导出数据,`fft`用于快速傅里叶变换,`filter`函数进行数字滤波,`detrend`用于去除趋势项,`peaks`产生示例信号。
八、毕业设计应用
在毕业设计中,MATLAB可能被用来模拟系统、分析实验数据、设计控制系统、优化算法或进行图像处理。学生需要结合所学专业,将MATLAB知识应用于实际项目中,解决具体问题。
以上就是MATLAB课程实验涉及的主要知识点,通过深入学习和实践,不仅可以掌握MATLAB的基本用法,还能培养编程思维和解决问题的能力,为未来的学术研究或职业发展打下坚实基础。
zero2100
- 粉丝: 172
- 资源: 2460
最新资源
- VC4.9OLP Visual Components 4.9
- 基于node实现登录,仅供参考
- 基于node实现注册,仅供参考
- MySQL期末考试:学生信息管理及查询题解指导
- DevExpress v18.1 的简体中文(zh-Hans)语言包
- 椰子糖 测试文件111111111111111
- 倾斜打标平台sw18可编辑全套技术资料100%好用.zip
- 基于Python控制台的人脸识别程序
- 基于CODESYS平台的S7客户端与西门子PLC通讯源码
- 思科运营商骨干网交换机 ASR9K 升降级详细步骤.doc
- 人工上料激光打码机sw18可编辑全套技术资料100%好用.zip
- C#上位机与西门子PLC通讯,读取数据,存储数据库,形成报表可查询,报警历史查询,变量自定义配置 每一步都有视频讲解(详细视频教程) 案例:涉及多线程,数据库存储,与PLC通讯等技术
- Sigma-Delta ADC Matlab Model 包含实例和说明,多种MATLAB代码和simulink模型都整合在里面了 包含一个3rd 3bit-9level 10MHz 400MSPS
- 全自动尼龙拉链双面贴布机(sw10可编辑+工程图)全套技术资料100%好用.zip
- 数字逻辑实验指导书2019年3月 (4月15日修改) (1).pdf
- stm32f103zet6原理图