[英]Plotting surface of a subset of 2d matrix in matlab
我有這個功能來繪制帶有沖浪的二維矩陣。 允許用戶指定矩陣的子集。
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
列數未知。 因此,如果未指定列的范圍,那么我想繪制所有列。 顯然,不允許使用“:”代表所有列,因此出現以下錯誤。 正確的做法是什么?
在編譯時,“ surf”被確定為變量,並且該變量未初始化。 “ surf”也是函數名稱,MATLAB的早期版本將其稱為函數。 但是,MATLAB 7禁止在相同的上下文中使用與函數和變量相同的名稱。
surf_sub(第9行)中的錯誤surf(1:row,:,n);
我不明白為什么您要堅持輸入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)
等...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.