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 ...
随机推荐
- springcloud(二) 微服务架构编码构建
微服务架构编码构建 1 基础知识 1.1 版本 2 微服务cloud整体聚合父工程Project 2.1 new project 2.2 字符编码设置 utf-8 2.3 pom.xml 2.4 父工 ...
- .NET CLI简单教程和项目结构
WHAT IS .NET CLI ? .NET 命令行接口 (CLI) 工具是用于开发.生成.运行和发布 .NET 应用程序的跨平台工具链. 来源:.NET CLI | Microsoft Docs ...
- Java:关于 CAS 笔记
Java:关于 CAS 笔记 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. CAS 底层原理 概念 CAS 的全称是 Compare-And-Swap,它 ...
- 热身 for computer industry
项目 内容 作业属于 班级博客 作业要求 作业要求 个人课程目标 掌握软件工程基础知识 具体有助方面 个人认知与规划 其他参考文献 博客Ⅰ 博客 Ⅱ 选择计算机 你为什么选择计算机专业?你认为你的条件 ...
- spring cloud feign的基本使用
在上一节,我们学会了如何使用ribbon进行来进行服务之间的调用,但是那种需要通过RestTemplate来进行调用而且当参数比较多时,使用起来就比较麻烦.那么有没有一种调用远程方法(别的服务)就像调 ...
- 转载:10G以太网光口与Aurora接口回环实验
10G以太网光口与高速串行接口的使用越来越普遍,本文拟通过一个简单的回环实验,来说明在常见的接口调试中需要注意的事项.各种Xilinx FPGA接口学习的秘诀:Example Design.欢迎探讨. ...
- 0x03
指数级枚举:1到n任意选取的所有方案数: #include<bits/stdc++.h> using namespace std; int n,a[1100],vis[1100],cnt, ...
- v3
#include <iostream> #include <time.h> #include "map" #include "stdio.h&qu ...
- cf13A Numbers(,,)
题意: Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: th ...
- HTML 罗盘式时钟
代码块: 1 <!DOCTYPE html> 2 <html lang="zh-hans"> 3 <head> 4 <meta chars ...