Arrays 在程序中使用字符串的单元格数组

Arrays 在程序中使用字符串的单元格数组,arrays,string,matlab,cell-array,Arrays,String,Matlab,Cell Array,假设我有以下代码 mc = {[2 5],[2 5],[8 9 2],[33 77 4],[102 6],[110 99],[2 5]} (): 要加载结果并将其用作单元格,我可以这样做吗?: load('C:\Users\MATLAB\matrice_Result.mat'); A = uniqueCells; B = [5 77 41 66 7]; (查找包含向量B的至少一个元素的单元A的向量:) 我的印象是,第二个代码不识别一个 只需使用str2num(A{n})将A的每个单元格转换

假设我有以下代码

mc = {[2 5],[2 5],[8 9 2],[33 77 4],[102 6],[110 99],[2 5]}
():

要加载结果并将其用作单元格,我可以这样做吗?:

load('C:\Users\MATLAB\matrice_Result.mat');
A = uniqueCells;

B = [5 77 41 66 7];
(查找包含向量B的至少一个元素的单元A的向量:)

我的印象是,第二个代码不识别一个

只需使用
str2num(A{n})
A
的每个单元格转换回数字形式:

R = A(arrayfun(@(n) any(ismember(B,str2num(A{n}))),1:numel(A)));
上面以字符串形式给出结果,因为
A{n}
ismember
中被转换为数字,但
A
以字符串形式保留。如果希望结果为数字形式,请首先转换
A
,然后将(divaker的)原始行应用于转换后的
A

A_num = cellfun(@str2num, A, 'uniformoutput', 0);
R = A_num(arrayfun(@(n) any(ismember(B,A_num{n})),1:numel(A)));

嗯,
B
是数字,
A{n}
是字符串。当然,
ismember
将全部
false
@LuisMendo:我知道,但我不好意思说我解决不了这个问题!哦,我明白了。等一下
R = A(arrayfun(@(n) any(ismember(B,str2num(A{n}))),1:numel(A)));
A_num = cellfun(@str2num, A, 'uniformoutput', 0);
R = A_num(arrayfun(@(n) any(ismember(B,A_num{n})),1:numel(A)));