Matlab指针数组
Matlab指针数组
前面博客Matlab指针中介绍了如何在Matlab中使用handle类型对象作为指针使用,本文则介绍一些使用这些类型指针的小技巧。
自定义类型的指针数组
在大部分编程语言中,我们都可以采用结构体来定义一些自定义类型。对于多个自定义类型的变量数据组合,我们可以采用指针指向各个变量,然后将所有指针组成一个数组储存起来(自定义类型指针数组)。如此便获得了能够访问所有变量数据的简单方法。
举例来说,每个netcdf文件中都会包含多个变量,若每个变量都使用一个指针代替,并且将这些指针组成一个数组varArray,那么在代表netcdf文件的对象中,只需要一个成员变量varArray即可访问所有变量所包含的内容,而不再需要将每个变量的指针都作为成员变量储存起来。
Matlab中指针数组
在 Matlab 中,实现上面的过程就稍显复杂。首先,Matlab 并没有普通的指针,需使用handle类对象来代替。其次,相同类型的handle对象组成数组时需要特殊方法。
Matlab中一般的实数数组可以先声明(申请内存),随后对数组元素进行赋值。
np = 3
a  = zeros(np)
for i = 1:np
    a(np) = i^2;
end% for
但是这种方法并不适用于指针数组。
>> help zeros
 zeros  Zeros array.
    ......
    zeros(..., CLASSNAME) is an array of zeros of class specified by the
    string CLASSNAME.
    ......
查看help zeros命令可以看到,zeros可以生成某种类型变量(CLASSNAME),但是可惜的是,这并不包括用户的自定义类型。
>> a = zeros(3, 'StdRegions.Line')
Error using zeros
CLASSNAME input must be a valid numeric or logical class name.
因此,唯一的一种办法就是用大括号将各个指针连接起来变成一个数组。如
linArray = [];
for i = 1:3
    t = StdRegions.Line(i);
    linArray = [t, linArray];
end
注意需要首相将数组赋值为空向量,否则会报错。得到结果为
>> linArray
linArray = 
  1x3 Line array with properties:
												
											Matlab指针数组的更多相关文章
- 指针数组学习中的小插曲真是醉了-----Strcmp用法
		
参考: 1.C++ 从入门到精通第三版: 2.https://blog.csdn.net/liaoshengshi/article/details/45099923 如是多次被别人转载的地址 ...
 - C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用
		
类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...
 - C++基础——函数指针 函数指针数组
		
==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...
 - C++中指针数组的分配与释放
		
C++中可用new和delete关键字分配和释放内存,但是如果遇到指针数组(或指向指针的指针),分配和释放必须慎重,不然容易造成内存泄漏. 下面用一段代码给出如何使用指向指针的指针来分配和释放内存: ...
 - typedef 函数指针 数组 std::function
		
1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA, *PDATA; //D ...
 - 指针数组  null与空字符串
		
指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便. 在c++中,null表示:对象为空,它是对指针而言的.而""表示:值为空,它是对字符串而言的.
 - C语言--指向多维数组的指针和指针数组
		
#include <stdio.h> //void show(char *p[]); ]); int main(){ ][]={","abc","x ...
 - 【C语言入门教程】4.8 指针数组
		
指针数组是一种特殊的数组,这类数组存放的全部是同一数据类型的内存地址.指针数组的定义形式为: 数据类型 *数组名[长度]; 例如: const char *c[4] = { "China&q ...
 - 指针数组 vs 数组指针
		
指针数组,故名思义,就是指针的数组,数组的元素是指针: 数组指针,同样,就是直想数组的指针. 简单举例说明: int *p[2]; 首先声明了一个数组,数组的元素是in ...
 
随机推荐
- Wireshark 过滤器的使用
			
符号 例子 = = tcp.port = = 80 过滤出来TCP包含80端口的数据包 != ip.src != 127.0.0.1 ip的原地址不是127.0.0.1过滤出来 > lp.len ...
 - nsq - 一条消息的生命周期(一)
			
经过前面几篇的学习,相信大家对nsq已经有了一个大概的了解,我在写这篇文章的时候也看了很多其他人写的教程,发现大家对于分析系统每个点写的很不错,但是都很少有整体串起来一起走一遍,所以,我打算分成2-3 ...
 - Java:死锁编码及定位分析
			
Java:死锁编码及定位分析 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 概念 死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象, ...
 - cf14D Two Paths(树的直径)
			
题意: N个点构成一棵树.树枝的长度都是1. 在当中找两条不相交[没有公共点]的路,使得二者长度之积最大. (2 ≤ n ≤ 200) 思路: 一开始思路好麻烦,好麻烦,好麻烦,,,,,,,而且WA, ...
 - 30分钟通过Kong实现.NET网关
			
什么是Kong Openrestry是一个基于Nginx与Lua的高性能平台,内部有大量的Lua库.其中ngx_lua_moudule使开发人员能使用Lua脚本调用Nginx模块.Kong是一个Ope ...
 - java性能优化常用工具jmap、jstack
			
jmap:java内存映像工具 jmap用于生成堆转储快照,比较常用的option包括-heap,-histo,-dump [root@localhost script]# jmap -h Usage ...
 - 盘点 GitHub 年度盛会|附视频
			
「Universe 2021」是 GitHub 于今年举办的开发者盛会,本次 Universe 2021 大会采用线上直播模式,为期两天已于上周落下帷幕. 这是 GitHub 举办的一年一度开发者盛会 ...
 - C++ 指针的引用和指向引用的指针
			
指向引用的指针 简单使用指针的一个例子就是: int a = 1; int *p = &a; 预先强调: 没有指向引用的指针 原因: 因为引用 不是对象,没有地址. 但是指向引用的指针是什么形 ...
 - 设计模式二--模板方法Template method
			
模式分类: 书籍推荐:重构-改善既有代码的设计 重构获得模式 设计模式:现代软件设计的特征是"需求的频繁变化".设计模式的要点是 "寻找变化点,然后在变化点处应用设计模式 ...
 - webpack 打包图片资源
			
webpack 打包图片资源 /** * loader: 1. 下载 2. 使用(配置) * plugins:1. 下载 2. 引入 3.使用 */ // 用来拼接绝对路径的方法 const {res ...