matlab里面怎么实现结构体数组的函数调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab里面怎么实现结构体数组的函数调用相关的知识,希望对你有一定的参考价值。

没太明白楼主的意思
结构体在matlab里面也有,是定义数据的一种方式,在matlab中struct比class更好用,甚至可以代替class(我就经常这么用),当然不能有类方法,但是matlab的函数组织又很灵活,所以这样用不存在什么问题。
图形显示无非就是imshow(对于图像)或者plot,plot3,scatter,scatter3,bar,stem(对于数据)等作图函数,图像数据也可以被plot,所以你要描述清楚你到底需要什么?
如果拿到一个c的结构图,你要plot出来数据,那你得知道你想怎么显示,结构体中的数据哪个代表哪个坐标?例如co=x,bo=y,or=z,那你的CELL可以看做一个点,二维结构体数组也就是一系列点,用plot3或者scatter3可以直接画的。
参考技术A   没太明白楼主的意思
  结构体在matlab里面也有,是定义数据的一种方式,在matlab中struct比class更好用,甚至可以代替class(我就经常这么用),当然不能有类方法,但是matlab的函数组织又很灵活,所以这样用不存在什么问题。
  图形显示无非就是imshow(对于图像)或者plot,plot3,scatter,scatter3,bar,stem(对于数据)等作图函数,图像数据也可以被plot,所以你要描述清楚你到底需要什么?
  如果拿到一个c的结构图,你要plot出来数据,那你得知道你想怎么显示,结构体中的数据哪个代表哪个坐标?例如co=x,bo=y,or=z,那你的CELL可以看做一个点,二维结构体数组也就是一系列点,用plot3或者scatter3可以直接画的本回答被提问者和网友采纳

我写了一个程序,利用数组,结构体,函数,指针,实现按学生的年龄从大到小输出学生的姓名和年龄,代码如下

#include<iostream.h>
#include<string.h>
struct student

char name[10];
int age;
;
void ax(student *p,student *temp)

int i,j;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if((p[i]).age>(p[j]).age)

temp=p[i];
p[i]=p[j];
p[j]=temp;


void main()

student z[10];
student temp="aaa",1;
int i;
for(i=0;i<10;i++)
cin>>z[i].name>>z[i].age;
ax(&z[10],&temp);
for(i=0;i<10;i++)
cout<<z[i].name<<z[i].age<<endl;

编译错误:error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'struct student' (or there is no acceptable conversion)

不能使用“=”将一个结构体赋值给另一个结构体。
在交换两个结构体的地方需要重写。追问

那要怎么改呀!

追答

#include
#include
using namespace std;
struct student

char name[10];
int age;
;
void ax(student *p, int num)

int i,j;
int tempNum;
char tempName[10];
for(i = 0; i >z[i].name>>z[i].age;
ax(z, 10);
for(i = 0;i < 10;i++)
cout<<z[i].name<<" "<<z[i].age<<endl;

参考技术A 看不懂 参考技术B ==

以上是关于matlab里面怎么实现结构体数组的函数调用的主要内容,如果未能解决你的问题,请参考以下文章

matlab 怎么将374个结构体数据保存在一个数组中?用哪个函数

matlab中如何看函数结构体中的数据

结构体数组怎么做函数参数

用 结构体地址 调用 结构体中元素 非常慢的问题,怎么解决?但就C语言,不说引用

matlab中怎么定义结构体

matlab中怎么定义结构体