Function 从其他函数访问数组元素
我写了一个matlab函数;现在,当我模拟它时,出现了以下错误Function 从其他函数访问数组元素,function,matlab,Function,Matlab,我写了一个matlab函数;现在,当我模拟它时,出现了以下错误 h(n) = (str.(n)); ???企图 参考场 非结构化阵列。; 我想不出来。有人能帮忙吗 功能控制(varargin) 语句h(n)有什么问题?我想把str元素存储在h(n)中。我还想将值从另一个函数传递给vibgyor。如何从其他函数调用它?变量str不是一个结构,它是一个字符串数组。 您可以按如下方式转换它 str = { 'violet'; 'indigo'; 'blue'; 'g
h(n) = (str.(n));
???企图
参考场
非结构化阵列。;
我想不出来。有人能帮忙吗
功能控制(varargin)
语句h(n)有什么问题?我想把str元素存储在h(n)中。我还想将值从另一个函数传递给vibgyor。如何从其他函数调用它?变量str不是一个结构,它是一个字符串数组。 您可以按如下方式转换它
str = {
'violet';
'indigo';
'blue';
'green';
'yellow';
'orange';
'red';
};
N = length(str);
h = zeros(N,6);
for n =1:N
X=cell2mat(str(n));
for m=1:length(X)
h(n,m) = X(m);
end;
end
h
如上所述,
str
不是一个结构,因此要引用第n个元素,只需删除此行上的点即可:
h(n) = str(n);
但是,这会导致以下错误:
???将单元格转换为双精度单元格时发生以下错误:错误
使用==>double从单元格转换为double是不可能的
这是因为您将h
初始化为零,并试图使其成为单元格数组。因此,您应该更改为以下内容:
str = {
'violet';
'indigo';
'blue';
'green';
'yellow';
'orange';
'red';
};
N = length(str);
h = cell(N,1);
for n =1:N
h(n) = str(n);
end
但是,如果您所做的只是将h
分配给str
为什么不跳过for
循环,直接执行此操作呢
h = str;
h = str;