C =
{
'xlh'
,
'gyl'
,
'xyh'
}
;
c = strcmp(C,
'gyl'
);
ind0 =
find
(c==
1
);
S =
repmat
(struct(
'name'
,
[]
,
'age'
,
[]
,
'sex'
,
[]
),
3
,
1
);
S(
1
).name =
'xlh'
; S(
1
).age =
'20'
;S(
1
).sex =
'男'
;
S(
2
).name =
'gyl'
; S(
2
).age =
'19'
;S(
2
).sex =
'女'
;
S(
3
).name =
'xyh'
; S(
3
).age =
'5'
;S(
3
).sex =
'男'
;
s = strcmp(
{S.name}
,
'gyl'
);
ind =
find
(s==
1
);
% 查找集合中某个元素的位置C = {'xlh','gyl','xyh'};c = strcmp(C,'gyl'); % logical arrayind0 = find(c==1);% Struct结构体某个字段值的位置 S = repmat(struct('name',[],'age',[],'sex',[]),3,1);S(1).name = 'xlh'; S(1).age = '20
Struct
Find,在
结构体
中
查找
某个字符串或
值
的索引
index=
struct
find(a,field,value)
输入, a : 一个
Matlab
结构体
,例如 a(1).name='red', a(2).name='blue'; field : 搜索
字段
的名称,例如 'name' value : 搜索
值
,例如 'blue'
输出, index : 与搜索匹配的结构索引
a(1).name='\u84dd\u8272'; a(1).index=0; a(1).val='g';
a(2).name='\u7ea2\u8272'; a(2).index=1; a(2).val=[1 0];
a(3).name='\u7eff\u8272'; a(3).index=2; a(3).val='g';
a(4).name='black'; a(4).index=3; a(4).val=[0 0 0];
a(5).name='
1.
struct
的生成
%生成有6个
字段
的
结构体
,各
字段
内容为空
control =
struct
('filename',{},'en',{},'c_out',{},'c_in',{},'a',{},'f',{});
%为
字段
填充内容,填充的可以为常数或矩阵
control.filename = name.filename(1:end-4);
control.en = en;
control.c...
近期做做一个数据分析的文章,需要使用经典的近红外光谱数据集 corn NIR(网址:http://eigenvector.com/), 但是下载的数据是包含在一个数据集
中
,无法直接使用,需要进行数据读取,此时有以下学习收获:
1.在读取包含在
结构体
中
的近红外光谱数据之前,需要知道所需数据在
结构体
内的名称,使用 fieldnames() 函数查看具体名称,以上述数据...
str = 'Find the starting indices of substrings in a character vector';
k = strfind(str,'in')
k = 1×5
2 15 19 36 41
拆解文件名(除去后缀)
str = filename;
pat = '_';
newStr = extractBefore(str,pat);
查找
某
个元素
在向量
中
的
位置
:m = find(A==5); %A是向量,5是要
查找
的
元素
值
,返回
位置
m
查找
某
个元素
在矩阵
中
的
位置
:[m,n] =find(B==5); %B是矩阵,5是要
查找
的
元素
值
,返回行
位置
m和列
位置
n
2. 字符型/cell型
查找
某个字符串在cell
中
的
位置
:m = find(strcmp(Strcell, str1)); %Strcell是cell数组,str1是要
查找
的字符串,返回
位置
m
对图形/轴
中
的
MATLAB
图形对象进行分类,并将它们作为
结构体
的
字段
返回。 h = figure2
struct
(src) src : 图形的句柄、轴或其子项的句柄。 默认情况下 gcf。 当给出一个数字时,返回的
结构体
h 具有相同的作为子图的行数和列数。 根据
位置
确定行和列, 不使用子图。 所以这个函数可以与子图重新定位的图形,例如,用于打印。 h(row,col) :包含以下
字段
的结构: - 轴- 儿童(所有儿童,不分种类) - 线- 文本- 传奇- 标记(LineStyle = 'none'), - 线段(只有两个坐标的线), - segment_vert - segment_horz - crossline(跨越至少一个轴的线) - 非分段(连接两个以上点的线)。 要仅使用多个子图
中
的一个轴,请使用:
copyobj(h(row,col).axes, figure);
index = find([C{:}] == 5);
方法一首先通过[C{:}]操作,将cell内的
元素
转化为数组,然后再对数组执行find()函数,返回要
查找
字符串的索引。
这种方法 只对数字(包括小数) 或单个char(单个字符) 有效。
如果对多个字符操作会出现如下错误:
可以使用循环遍历
结构体
中
的所有
字段
,然后使用
Matlab
的ismember函数判断该
字段
是否属于指定的
集合
,最后将符合要求的
字段
保存到一个新的
结构体
中
。
示例代码:
% 定义
结构体
my
Struct
.field1 = 1;
my
Struct
.field2 = 'a';
my
Struct
.field3 = [1 2];
my
Struct
.field4 = 'b';
my
Struct
.field5 = [3 4];
% 指定要
查找
的
集合
mySet = {'a', [3 4]};
% 遍历
结构体
中
的所有
字段
new
Struct
=
struct
();
fields = fieldnames(my
Struct
);
for i = 1:length(fields)
% 判断该
字段
是否属于指定的
集合
if ismember(my
Struct
.(fields{i}), mySet)
% 如果属于,保存到新的
结构体
中
new
Struct
.(fields{i}) = my
Struct
.(fields{i});
% 输出新的
结构体
中
的所有
字段
newFields = fieldnames(new
Struct
);
for i = 1:length(newFields)
disp([newFields{i} ':']);
disp(new
Struct
.(newFields{i}));
GPML toolbox -- document
ASLS_Shen:
设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点
jiyi_guoshu: