matlab中如何把一个向量中的每个元素与元胞数组中的每个元素比较,返回元胞数组里元素在向量中的位置.prcoop中每个元胞数组元素在authernum的位置,形成新的与precoop对应的矩阵.矩阵中人名换
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 14:35:00
matlab中如何把一个向量中的每个元素与元胞数组中的每个元素比较,返回元胞数组里元素在向量中的位置.prcoop中每个元胞数组元素在authernum的位置,形成新的与precoop对应的矩阵.矩阵中人名换
matlab中如何把一个向量中的每个元素与元胞数组中的每个元素比较,返回元胞数组里元素在向量中的位置.
prcoop中每个元胞数组元素在authernum的位置,形成新的与precoop对应的矩阵.矩阵中人名换成了位置信息.需用cellfun函数,需自定义函数.
matlab中如何把一个向量中的每个元素与元胞数组中的每个元素比较,返回元胞数组里元素在向量中的位置.prcoop中每个元胞数组元素在authernum的位置,形成新的与precoop对应的矩阵.矩阵中人名换
建立一个文件shiyan1.m,然后用下面的代码测试,不知道你是不是这个意思:
function shiyan1
clc;
global a;
a = { 'ab'; 'cde'; 'fg'; 'hi'; 'kl' };
p = { 'fg;kl;cde'; 'hi;ab' };
p0 = cellfun( @subfun, p, 'UniformOutput', false );
function po = subfun( pi )
global a;
names = regexp( pi, ';', 'split' );% 把几个名字分割开来
l = length( names );
po = '';
for i = 1 : l - 1
% 搜索pi每个名字在a里的位置
index = find( cellfun( @( x ) isequal( x, names{ i } ), a, 'UniformOutput', true ) );
po = [ po, num2str( index ), ';' ];
end
index = find( cellfun( @( x ) isequal( x, names{ l } ), a, 'UniformOutput', true ) );
po = [ po, num2str( index ) ];