数据集中的最小值 - cell2mat导致零值

时间:2013-04-17 11:57:51

标签: matlab

我正在加载数据集,我正在接受用户输入以查找特定城市的列值。

例如:

city=input('Select city : ','s');
result=data(ismember(data.CITY,eval('city')),3:end);

我收到了:

Y2000 Y2002 Y2003 ..

100 120 150

或者如果用户输入年份:

year=input('Select year  : ','s');
result=data(:,{'CITY',eval('year')});

现在,我想在“结果”中找到最小值,但我无法弄清楚如何。

另外,如果我这样做:

  

分钟(data.Y2000)

在整个数据中它的工作原理。但是如果我尝试min(data.year),那么

 year=input('Select year ','s')

我收到了

  

“无法识别的变量名称'年'。”

--------------- UPDATE ------------------------------- ----------------------

对于以上所有,我做了:

 result=data(:,{'CITY',(year)});

为了找到我所做的最小值:min(result.(year));并且它有效。

我遇到了问题:

result=data(ismember(data.CITY,(city)),3:end);

我收到用户选择年份的日期。我想在所有列中找到最小值。因为“结果”是一个数据集,我试图使它成为一个单元格,然后是单元格矩阵。

我使用dataset2cell然后我收到一个大小为2x22的单元格,其中包含第1行中的字符。 (它有'Y200','Y2001'..)和第2行的数字数据。

为了删除这些字符,我做了:

  

mycell(any(cellfun(@(x)x(1)=='Y',mycell),2),:) = []

然后:

  

新= cell2mat(了myCell)

因为我想找到最小值和最大值。

但这导致一半的值为零。

我可以做些什么来防止这种情况?或者如果还有其他方法可以找到分钟。

0 个答案:

没有答案