我想在A
中获取所有唯一值,其中A
是不同形状和大小的矩阵的单元格数组:
A = {[], 1, [2 3], [4 5; 6 7]};
U = [];
for ii = 1: numel(A)
a = A{ii};
U = [U; a(:)];
end
U = unique(U);
返回:
U =
1 2 3 4 5 6 7
如果A
中的所有元素都在行向量中,我可以像[A{:}]
那样使用:
U = unique([A{1:3}]);
返回:
U =
1 2 3
但在我的情况下,它会引发异常:
使用horzcat时出错
连接的矩阵的尺寸不是 是一致的。
那我怎么能避免那个for-loop?
答案 0 :(得分:3)
您可以使用 $("#txtcountry").val("");
重塑单元格中的所有元素。
NSString *passwordRegex = @"^.*(?=.{6,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$!&]).*$";
NSPredicate *passwordPred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", passwordRegex];
if (![passwordPred evaluateWithObject:passwordTF.text]) {
[self.view makeToast:@"Password must be at least 6 character, containing lowercase letter, one uppercase letter, digits, and special character (!@#$&)" duration:2.0 position:@"bottom"];
}
或避免cellfun
与
U = unique(cell2mat(cellfun(@(x)reshape(x,1,numel(x)),A, 'UniformOutput', false)));
答案 1 :(得分:3)
我们可以这样:
A = {[], 1, [2 3], [2 0; 4 5; 6 7]};
AA = cellfun( @(x) unique(x(:)), A, 'UniformOutput' , false)
res = unique(cat(1, AA{:}))
cat(1, AA{:})
。