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 ...
随机推荐
- VS2019 及 Visual Assist X 安装配置
Visual Studio 2019 安装 下载 https://visualstudio.microsoft.com/zh-hans/downloads/ 安装 设置 扩大 Solution Con ...
- 自动化键盘,python
国际惯例先上源https://github.com/boppreh/keyboard#键盘输入 from pynput.keyboard import Key,Controller,Listener ...
- pwn200,一道不完全考察ret2libc的小小pwn题
pwn200 ---XDCTF-2015 每日一pwn,今天又做了一个pwn,那个pwn呢???攻防世界的进阶区里的一道小pwn题,虽然这个题考察的知识不多,rop链也比较好构建,但是还是让我又学到了 ...
- Noip模拟30 2021.8.4
T1 毛一琛 考场上打的稳定的$O((2^n)^2)$的暴力.其实再回忆一下上次那道用二进制枚举的题$y$ 就可以知道一样的道理,使用$\textit{Meet In the Middle}$, 按照 ...
- 2021.5.24考试总结 [NOIP模拟3]
带着爆0的心态考的试,没想到整了个假rk2 (炸鱼大佬wtz忒强了OTZ T1 景区路线规划 这题对刚学完概率期望的我来说简直水爆了好吗.. 因为存在时间限制,不好跑高斯消元,就直接跑dp就完了. 令 ...
- python基础语法--字典的遍历
原文链接:https://blog.csdn.net/normang/article/details/55804231 (1)遍历key值 >>> a {'a': '1', 'b': ...
- 一文读懂Android进程及TCP动态心跳保活
一直以来,APP进程保活都是 各软件提供商 和 个人开发者 头疼的问题.毕竟一切的商业模式都建立在用户对APP的使用上,因此保证APP进程的唤醒,提升用户的使用时间,便是软件提供商和个人开发者的永恒追 ...
- Des加密解密(公共方法)
1 public class Des 2 { 3 public static string Encrypt(string message, string key) 4 { 5 DES des = ne ...
- Android Studio 查看SQLite数据库存储位置及文件
前言: 之前开发的一个记账本APP,用的是SQLite数据库,会有一些网友问如何查看数据库,这篇博文对此进行一个说明. 操作: 1.通过DDMS(Dalvik Debug Monitor Servic ...
- java 三大特性_继承、封装、多态_day005
一.继承: java的三大特性之一.两个类之间通过extends关键字来描述父子关系,子类便可拥有父类的公共方法和公共属性.子类可以继承父类的方法和属性,子类也可以自己定义没有的方法或者通过覆盖父类的 ...