如何将单元数组转换成矩阵,用NaN值填充不一致维数,并在MATLAB中绘制

如何将单元数组转换成矩阵,用NaN值填充不一致维数,并在MATLAB中绘制,matlab,Matlab,这是我的问题: A={[1 2 3]; [1] ; [5 1]}; 现在我想把这个变量转换成一个矩阵,如下所示: [B] =函数x(A) 第一个问题解决后,我想绘制这个矩阵,所以我必须这样做(我不知道是否有更简单的方法): 然后我得到了这个图形: 所以,我想知道是否有办法让matlab只识别一个数据,我的意思是,只出现在图例“数据1”中,而不是“数据1、数据2和数据3”。第一部分可以这样做 maxLength = max( cellfun(@(x)(numel(x)),A)); B = ce

这是我的问题:

A={[1 2 3]; [1] ; [5 1]};
现在我想把这个变量转换成一个矩阵,如下所示:

[B] =函数x(A)

第一个问题解决后,我想绘制这个矩阵,所以我必须这样做(我不知道是否有更简单的方法):

然后我得到了这个图形:


所以,我想知道是否有办法让matlab只识别一个数据,我的意思是,只出现在图例“数据1”中,而不是“数据1、数据2和数据3”。

第一部分可以这样做

maxLength = max( cellfun(@(x)(numel(x)),A));
B = cell2mat(cellfun(@(x)cat(2,x,NaN*ones(1,maxLength -length(x))),A,'UniformOutput',false));
对于第二部分,请使用此

plot(repmat((1:size(B,1))',size(B,2),1),reshape(B',[],1),'O')

对于第一部分,请看这一点。对于第二部分,请使用
绘图(repmat((1:size(B,1)),size(B,2),1),重塑(B',[],1),'O')
for循环的intsead
maxLength = max( cellfun(@(x)(numel(x)),A));
B = cell2mat(cellfun(@(x)cat(2,x,NaN*ones(1,maxLength -length(x))),A,'UniformOutput',false));
plot(repmat((1:size(B,1))',size(B,2),1),reshape(B',[],1),'O')