How to get several values from a cell array through a loop?
2 次查看(过去 30 天)
显示 更早的评论
Hi there,
I'm quite new to MATLAB and thats why I need some help.
I have got a cell array of size m x 3 and I want to extract the values in all 3 columns, by identifying the right rows with the value in column 1.
e.g.
A = {'company name', date, number
'company name 2', date, number}
I also wants to use a loop because the number of companies and thus the number of rows change.
Thanks in advance
0 个评论
回答(1 个)
Jyotirmay Mishra
2020-7-1
For example you have a cell array a = {'abc', 1, 2; 'ba', 2, 4}
You can do the following steps to find all the column of row with company name 'abc'
t = string(a(:,1)) %%This gives first column of all rows in string form
Y = "abc" == t %% This in this case will give a 2X1 array with 1 in case the name matches and 0 if it doesn't
Result = a(Y, :) %% This will give all the columns of rows with matched condition
5 个评论
Jyotirmay Mishra
2020-7-2
Yes you can use a loop. For example- If you have a different cell array with company names and you want to check for each company name in that cell array you can do something like this
comp_name = {...} %%company name cell array
for i=1:length(comp_name)
t = string(a(:,1))
Y = string(comp_name(i)) == t
Result = a(Y, :) %% a is the name of original cell array with 3 columns
%%Result will give the required rows for each company name in comp_name cell array
end
You can also do it without converting the elements into a string
Look at this post for more insight
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!