find row and column of a value in cell array
3 次查看(过去 30 天)
显示 更早的评论
I have A matrix of dimension 10*10. C is linear index of non zero element in A
C = {[11],[33;44;54;55],[77;87;98]};
I want to find row and column of linear index in cell array.
result should be
row_col = {[1,2],[3,4; 4,5; 4,6; 5,6],[7,8;7,9;8,10]}
0 个评论
采纳的回答
Ameer Hamza
2020-4-11
编辑:Ameer Hamza
2020-4-11
C = {[11],[43;54;63;64],[87;97;108]};
A = rand(10);
result = cellfun(@(x) {ind2sub2(size(A), x)}, C);
function y = ind2sub2(sz, ind)
[r,c] = ind2sub(sz, ind);
y = [r(:) c(:)];
end
Result:
>> result{1}
ans =
1 2
>> result{2}
ans =
3 5
4 6
3 7
4 7
>> result{3}
ans =
7 9
7 10
8 11
0 个评论
更多回答(1 个)
David Hill
2020-4-11
Your example does not get the correct result.
Size_A =[10 10];
row_col = cell([],1);
for i=1:length(C)
[rows,cols] = ind2sub(Size_A,C{i}(:));
row_col{i} = [rows,cols];
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!