cell与struct

matcovnet基础

matconvnetm描述某一层的基本用法是struct+cell

struct可以理解为matlab版的键值对(dictionary)
cell可以理解为c里面的结构体,他的操作很随意,可以任意加东西进去

下面有一段代码可以很好的体会这个问题

%Cell Test
clear; clc; close all
%% Cell里的元素是任意的
C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}}
 %可以为空
 CNull = {}
 %% 切片操作
 C = {'2017-08-16',[56 67 78]}
 C(2,:) = {'2017-08-17',[58 69 79]};
 C(3,:) = {'2017-08-18',[60 68 81]}
 C(1,:)
 %% 以下两句是等效的
 C = cell(3,4,2);
 C{3,4,2} = [];%与python的list非常像
 %% 数据转换
 C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}} 
 a = C(2,3)
 %b = cell2mat(a)
 d = a(1)
 % matlab中矩阵是带中括号的,任何运算实际上是矩阵运算(默认中括号),也是中括号之间的运算。
  C = {1,2,3;
     'text',rand(5,10,2),[11; 22; 33]} 
 a = C(2,3)
 %在把数据类型改过来
 b = cell2mat(a)
 c = b*2

下面来看看struct

%structTest
%格式:structName.fieldName
%% basic use
data.x = linspace(0,2*pi);
data.y = sin(data.x);
data.title = 'y = sin(x)'
figure(1)
plot(data.x,data.y)
title(data.title)
%% field and value,等同于pytorch的键值对
field = 'f';
value = {'some text';[10, 20, 30];magic(5)};
s = struct(field,value)
%%
field1 = 'f1';  value1 = zeros(1,10);
field2 = 'f2';  value2 = {'a', 'b'};
field3 = 'f3';  value3 = {pi, pi.^2};
field4 = 'f4';  value4 = {'fourth'};
s = struct(field1,value1,field2,value2,field3,value3,field4,value4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值