Ele*_*ore 1 performance matlab matrix
假设M是一个矩阵,其中每一行代表一个N对象池的随机序列,例如,
1 2 3 4
3 4 1 2
2 1 3 4
Run Code Online (Sandbox Code Playgroud)
如何有效地查找数字A前面的所有行B?
例如,A=1和B=2; 我想检索第一行和第二行(1之前的行2)
你去:
[iA jA] = find(M.'==A);
[iB jB] = find(M.'==B);
sol = find(iA<iB)
Run Code Online (Sandbox Code Playgroud)
请注意,这是有效的,因为根据问题规范,每个数字都保证在每一行中出现一次.
要查找M具有给定前缀的行(在注释中请求):prefix设为带有搜索前缀的向量(例如prefix = [1 2]):
find(all(bsxfun(@eq, M(:,1:numel(prefix)).', prefix(:))))
Run Code Online (Sandbox Code Playgroud)