在matlab中绘制2d矩阵子集的表面

时间:2014-05-23 19:47:28

标签: matlab matrix

我有这个功能用冲浪绘制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);

1 个答案:

答案 0 :(得分:0)

我不明白为什么你坚持输入col1col2而不只是一个变量而不是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:30cols=1:size(n,1)等...

相关问题