MATLAB第三章——一类数组,图片读取及操作

本文介绍了MATLAB中的元胞数组用法,包括如何读取和操作图片,如批量行拼接和加密图片。此外,还提到了从表格文件导入数据的技巧以及计算最大回撤的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章

元胞数组

  1. MATLAB元胞数组(cell)可以将浮点型、字符型、结构数组等不同类型的数据放在同一个存储单元中
  2. [c,1]cell中插入数字1 cell2mat(c(2)) — cell类型转换为矩阵

读取图片

  %% 读取图片
clc, clear, close all
a1=imread('000.bmp');
[m,n]=size(a1);
%% 批量读取图片
dirname = 'ImageChips';
files = dir(fullfile(dirname, '*.bmp'));
a=zeros(m,n,19);
pic=[];
for ii = 1:length(files)
  filename = fullfile(dirname, files(ii).name);
  a(:,:,ii)=imread(filename);
  pic=[pic,a(:,:,ii)];
end
double(pic);
figure
imshow(pic,[])

  1. dir(xxx)返回其中文件名或所有文件夹下所有文件名
  2. fullfile(a,b,c)合成一个地址a\b\c
  3. a(:,:,1)分块的矩阵(其中的第一块)
  4. imread('xxx.jpg');imshow(pic,[])前者为读取图片像素,后者为展示图片
  5. 原理在于将图片变为矩阵,通过拼接ju’z矩阵来转换为图片。

批量行拼接图片

function ConnectImages()
%% 读取图片
clc, clear, close all

%% 批量拼接图片

    files = dir('*.j
### Matlab 数组索引方法 #### 基本索引方式 在 Matlab 中,可以通过多种方式进行数组索引。最简单的方式是使用单个整数作为下标来获取或设置特定位置上的元素[^1]。 对于一维向量 `A` ,可以如下访问其第一个元素: ```matlab firstElement = A(1); ``` 同样地,也可以通过这种方式修改指定位置处的值: ```matlab A(1) = newValue; ``` #### 多维数组索引 当处理多维矩阵时,则需提供多个参数来进行定位。例如,在二维矩阵 B 中选取第 i 行 j 列的数据项可表示为: ```matlab elementIJ = B(i,j); ``` 如果要更改该位置的内容则只需赋新值得到更新后的版本即可完成相应操作. #### 使用冒号运算符(:) 为了更方便快捷地提取整个行/列甚至子矩阵,Matlab 提供了特殊的符号——冒号(`:`),它代表“全部”。比如想要获得某一行的所有元素就可以这样写: ```matlab rowElements = matrixName(rowIndex,:); ``` 同理可以获得某一列的所有成员: ```matlab columnElements = matrixName(:,colIndex); ``` 此外还可以利用此特性轻松截取任意大小连续区域内的数据形成新的子集对象: ```matlab subMatrix = originalMatrix(startRow:endRow,startCol:endCol); ``` #### 元胞数组(cell array)特殊索引规则 值得注意的是元胞数组具有不同于普通数值型或多类型混合存储结构的特点。针对这类特殊情况下的单元格引用形式有所区别—采用花括号 `{}` 来代替圆括号 `()` 进行内部组件读取;而后者仅限于返回对应位置上保存的整体 cell 对象本身而非其中具体装载的信息实体[^3]。 ```matlab % 获取元胞数组C中某个元素的实际内容 contentOfCell = C{index}; % 修改元胞数组内指定位置储存的东西 C{index} = newContent; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值