我有这个功能用冲浪绘制2d矩阵。允许用户指定矩阵的子集。
function surf_sub(file,row,col1,col2)
% Plot submatrix read in from a file
% number of rows/columns can be specified
m=dlmread(file,',');
if nargin < 3
n=m(1:row,:);
figure;
surf(1:row,:,n);
else
n=m(1:row,col1:col2);
figure;
surf(1:row,col1:col2,n)
end
end
列数未知。因此,如果未指定列范围,我想绘制所有列。显然有&#34;:&#34;不允许表示所有cols,因此出现以下错误。什么是正确的方法?
编辑时,&#34;冲浪&#34;被确定为变量而且这个 变量未初始化。 &#34;冲浪&#34;也是一个函数名和前一个 MATLAB的版本会调用该函数。但是,MATLAB 7 禁止在与a相同的上下文中使用相同的名称 功能和变量。
surf_sub中的错误(第9行) 冲浪(1:行,:,N);
答案 0 :(得分:0)
我不明白为什么你坚持输入col1
,col2
而不只是一个变量而不是cols
,但不管怎样。根据你的问题:
function surf_sub(file,row,col1,col2)
m=dlmread(file,',');
if nargin < 3
n=m(1:row,:);
figure;
surf(n(1:row,:));
else
figure;
surf(n(1:row,col1:col2))
end
应该这样做。
如果我必须这样做,我会写:
surf(n(rows,cols));
输入,例如rows=1:30
,cols=1:size(n,1)
等...