matlab 编程 day(2)table,cell和结构体数组

一、table

1.1 table

%endTime = [];
spendTime = randi([10,50],[10,1]);
id = [1:1:10]';
%在第几个cpu位置
cpuStation = zeros(10,1);
%在Stack的第几个位置,由低往高数
stackStation = zeros(10,1);
node = table(id,startTime,spendTime,cpuStation,stackStation)

1.2 table添加列

  • 添加一列的具体数据并进行初始化
node.age=[1:1:100]'

1.3 table2struct函数

table2struct(T,'ToScalar',true)

二、元胞数数组cell

2.1 参考

Matlab中的元胞数组(cell)

2.2 赋值语句

node(1,1) = {23}

2.3

三、结构体

3.1 结构体基础操作


%1.结构体数组,先创建一个基结构的实例
student = struct("name",'jack',"age",12,"address","xi");
%新增字段
student.sex="man";
%删除字段
student = rmfield(student,"sex");
name = getfield(student,"name");
student = setfield(student,"name","tom");
%创建同类型第二个结构体
student(2).name = "rose";
%查看改结构体实例
student(1)
%在实例基础上创建新的对象
student(2)
student(3) = student(2)
%查看结构体的字段数
fieldnames(node)
%查看结构体数组的长度
length(node);

3.2 table转为struct

table1 = table(id,startTime,spendTime,cpuStation,stackStation);
%添加变量:node.age=[1:1:100]'
[row,col] = size(table1);
node = table2struct(table1(1,:),'ToScalar',true)
for i = 2:row
    node(i) = table2struct(table1(i,:),'ToScalar',true);
end

3.3 struct转为node

table2 = struct2table(node);

四、其他常用的

4.1 判断数据的类型

class(data)

4.2 非线性规划和结构体结合

% min F(X)
% s.t
% AX <= b
% AeqX = beq
% G(x) <= 0
% Ceq(X) = 0
% VLB <= X <= VUB
clear
clc
x0 = [-2 -2 -2 --2];  %初始值! 
Aeq = [1 1 1 1];
beq = [4];
VLB = [-2 -2 -2 -2];
VUB = [2 2 2 2];
b =3;
student = struct("name","jack","age",23);
%[x, fval] = fmincon(@fun3, x0, A, b, Aeq, beq, VLB, VUB)  %两种都可以,后者可以传递参数
[x,fval]=fmincon(@(x) fun3(x,student), x0,[],[], Aeq, beq, VLB, VUB)
function f = fun3(x,student)
f = x(1)+x(2)+x(3)-x(4)+student.age;
end
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值