【发布时间】:2015-05-08 09:04:54
【问题描述】:
您好,我正在尝试创建一个看起来像这样的元胞数组。
'3/7/2014' '209.167.128.156' 1037
'3/13/2014' '204.205.57.137' 8
'3/18/2014' '209.167.128.156' 164
'3/27/2014' '216.178.43.209' 825
但问题是当我运行我的代码时,我得到一个像这样的元胞数组
{1x3cell} {1x3 cell} {1x3 cell} {1x3 cell} {1x3 cell]
这是我的代码:
cell = {};
month = 'March';
[num text raw] = xlsread(sheet);
text(1,:)= [];
fanta = text(:,1);
[row col] = size(fanta);
a = 1;
for i = 1:row
coke = fanta{i};
[first rest] = strtok(coke, '/');
if strcmp(first, '1') && strcmp(month, 'January')
cell{i} = raw((a+i), :);
end
if strcmp(first, '2') && strcmp(month, 'February')
cell{i} = raw((a+i), :);
end
if strcmp(first, '3') && strcmp(month, 'March')
cell{i} = raw((a+i), :);
end
if strcmp(first, '4') && strcmp(month, 'April')
cell{i} = raw((a+i), :);
end
if strcmp(first, '5') && strcmp(month, 'May')
cell{i} = raw((a+i), :);
end
if strcmp(first, '6') && strcmp(month, 'June')
cell{i} = raw((a+i), :);
end
if strcmp(first, '7') && strcmp(month, 'July')
cell{i} = raw((a+i), :);
end
if strcmp(first, '8') && strcmp(month, 'August')
cell{i} = raw((a+i), :);
end
if strcmp(first, '9') && strcmp(month, 'Sepetember')
cell{i} = raw((a+i), :);
end
if strcmp(first, '10') && strcmp(month, 'October')
cell{i} = raw((a+i), :);
end
if strcmp(first, '11') && strcmp(month, 'November')
cell{i} = raw((a+i), :);
end
if strcmp(first, '12') && strcmp(month, 'December')
cell{i} = raw((a+i), :);
end
end
cell = cell(~cellfun('isempty', cell))
我做错了什么,我该如何解决。 谢谢。
【问题讨论】:
-
cell = cell(...)是非常糟糕的做法(!!):-? (cell是matlab中的一个函数) -
请看我的回答:它有效。
标签: arrays matlab conditional cell