Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下标赋值维数不匹配(matlab)_Matlab_Matrix_Vector - Fatal编程技术网

下标赋值维数不匹配(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}