How to access elements in a convoluted cell array.

조회 수: 2 (최근 30일)
jungdnb
jungdnb 2016년 12월 23일
댓글: Image Analyst 2016년 12월 27일
Hello and happy holidays to everyone.
I have an convoluted cell array IZ, with the size 1x12, that looks like this
IZ =
Columns 1 through 7
'4 8 12 16' '15 26 30 34' '4 8 12 16' '4 8 12 16' '4 15 17 21' '3 7 9 28' '3 7 9 28'
Columns 8 through 12
'3 7 9 28' '3 7 9 28' '3 14 16 35' '3 14 16 35' '3 9 11 30'
I know, I can access the single columns by typing IZ{x}, where x is the column index. But how can I access for example say third element of first column? Many thanks and greetings.

채택된 답변

Jan
Jan 2016년 12월 26일
What is "the 3rd element of the 1st column"? Do you mean the 12 as a number?
IZ = {'4 8 12 16', '15 26 30 34', '4 8 12 16'} % The rest does not matter here
FirstCol = IZ{1};
Number = sscanf(FirstCol, '%f');
Value = Number(3)
Or is the "3rd element" the 3rd character of the string? Please clarify this.
  댓글 수: 1
jungdnb
jungdnb 2016년 12월 27일
편집: jungdnb 2016년 12월 27일
I mean the number 12 as a number. I don't understand the line FirstCol = IZ{1}, is 1 the index of first column? I try your suggestion like this:
for idx=1:length(IZ)
Col = IZ{idx};
Number = sscanf(Col, '%f');
Value = Number(3)
end
Thank you, it works perfect.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2016년 12월 26일
I don't know what convoluted means. To me it means very complicated but some people use it to mean "convolved" like the result of a convolution operation. Anyway.....
Try this:
IZ = {'4 8 12 16',...
'15 26 30 34',...
'4 8 12 16',...
'4 8 12 16',...
'4 15 17 21',...
'3 7 9 28',...
'3 7 9 28',...
'3 7 9 28',...
'3 7 9 28',...
'3 14 16 35',...
'3 14 16 35',...
'3 9 11 30'}
% IZ is a row vector of cells with 12 columns - "1×12 cell array"
% First get the first cell contents.
% First column is a string with 4 numbers and spaces in it.
col1String = IZ{1} % Extract contents into a string '4 8 12 16'
% Get third element of the first column.
% The third element of that string is a space.
element3 = col1String(3) % This will be a space.
  댓글 수: 2
jungdnb
jungdnb 2016년 12월 27일
Thx, this is also useful for me, but for antoher problem. I meant with "third element" the number 12, or with ongoing number of columns, numbers 30, 17, 9, 16, etc.
Image Analyst
Image Analyst 2016년 12월 27일
I think the FAQ might also help you understand cell arrays: http://matlab.wikia.com/wiki/FAQ#What_is_a_cell_array.3F

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by