下标赋值维数不匹配(matlab)
对于下标赋值维数不匹配(matlab),matlab,matrix,vector,Matlab,Matrix,Vector,对于input_cell={'ABC'、'ACB'、'BCA'}来说,代码是正常的 代码无法为input_cell={'ABC'、'ACB'、'BCAD'}运行 有人能帮我纠正这个错误吗 input_cell= {'ABC','ACB','BCAD'} %the code is ok for input_cell= {'ABC','ACB','BCA'} data=[]; for i=1:numel(input_cell) p=strsplit(input_cell{i},' ') m
input_cell={'ABC'、'ACB'、'BCA'}来说,代码是正常的
代码无法为input_cell={'ABC'、'ACB'、'BCAD'}运行
有人能帮我纠正这个错误吗
input_cell= {'ABC','ACB','BCAD'}
%the code is ok for input_cell= {'ABC','ACB','BCA'}
data=[];
for i=1:numel(input_cell)
p=strsplit(input_cell{i},' ')
m=cell2mat(p(:))
m=m-'?'
[~,k]=sort(m);
%compare each pair
M = bsxfun(@(a,b)(a<b)+0.5*(a==b),k,k')
vector = reshape(M.',[],1) %# Collect the row contents into a column vector
vector = vector' % change from columns into 1 row
data(i,:)= vector % data matrix inludes all vectors
end
input_cell={'ABC','ACB','BCAD'}
%输入_cell={'ABC'、'ACB'、'BCA'}的代码正常
数据=[];
对于i=1:numel(输入单元)
p=strsplit(输入单元{i}',)
m=cell2mat(p(:)
m=m-“?”
[~,k]=排序(m);
%比较每一对
M=bsxfun(@(a,b)(a您可以通过使用结构来解决此问题。在结构中,每个单元格的尺寸可能不同。如果您的数据
变量可以是一个单元格,则此操作:
input_cell= {'ABC','ACB','BCAD'}
%the code is ok for input_cell= {'ABC','ACB','BCA'}
data={};
for i=1:numel(input_cell);
p=input_cell{i}(:);
[~,k]=sort(p);
%compare each pair
M = bsxfun(@(a,b)(a<b)+0.5*(a==b),k,k')
vector = reshape(M.',[],1) %# Collect the row contents into a column vector
vector = vector' % change from columns into 1 row
data{i}= num2cell(vector(:,:)) % data matrix inludes all vectors
end
希望这对您有所帮助您的输入字符串中有一个是4个字符,而其他的是3个字符。我还没有写答案,因为我不知道这段代码正在做什么来更正并为您提供所需的输出。strsplit
do@kgk你让它工作了吗?细胞元素的尺寸也可以变化。这是一个愚蠢的答案。是的,它是使用结构,因为结构保存单元格元素。如何在修改后的代码中查看数据值?所以数据现在是一个包含3个单元格的单元格数组。数据{1}访问第一个单元格,数据{1}(1)将索引第一个单元格的第一个元素(数据{1}(2)访问第一个单元格的第二个元素,等等)我不认为MathWorks能很好地解释单元数组索引,Matlab Central的这个例子可能是一个很好的例子:你的最终目标是什么?
data = {1x9 cell} {1x9 cell} {1x16 cell}