我有一个1x3的单元格数组,如下所示:
str = strings(6,1)
str(1) = 'A'
str(2) = 'B'
str(3) = 'A'
str(4) = 'B'
str(5) = 'A'
str(6) = 'B'
str2 = strings(6,1)
str(1) = 'r'
str(2) = 'r'
str(3) = 't'
str(4) = 's'
str(5) = 't'
str(6) = 'm'
a = [345; 344; 234; 234; 235; 231]
CA{1} = str
CA{2} = str2
CA{3} = a
我需要在第3列中提取值,其中:
第1列显示'A'
,第2列显示't'
。
我甚至无法找到如何接近它的开始,希望有人可以帮助我! 我已经尝试了下面的代码,但是它们返回一个空的向量,这可能是由于我错误地指出了问题,对不起!
答案 0 :(得分:1)
我总是使用KISS代码(保持简单愚蠢)。我提出的方法可能不是最快或最优雅的,但我尝试了它并且它有效。
var grid = $("#grid").data("kendoGrid");
var columns = grid.columns;
var hiddenFields = [];
for(var i = 0; i < columns.length; ++i) {
if(columns[i].hidden) {
hiddenFields.push(columns[i].field);
}
}
在此示例中,我调用了您的单元格数组 cellarray 。你也可以使用strcmp而不是==,事实上你需要比较一个以上的角色。
答案 1 :(得分:0)
以下代码可能适用:
cellArray{3}((cellArray{1}=='A')&(cellArray{2}=='t'))
其中cellArray{3}
是您想要值的单元格数组的列,cellArray{1}
和cellArray{2}
是包含字符的列。这应该返回一个包含数值的矩阵。
我希望这是有道理的!
答案 2 :(得分:0)
我相信你正在寻找cellfun。您想要索引每个单元格的第3个元素,因此创建一个索引到值的第3个元素的函数,然后将其应用于每个单元格:
>> cellfun(@(c) c(3), CA,'UniformOutput',false)
ans =
1×3 cell array
{["A"]} {["t"]} {[234]}