提高Matlab代码效率(improveMatlabPerformance).pptx

Matlab code performance;Part I: Techniques for Improving Performance;Use the appropriate preallocation function for the kind of array you want to initialize: zeros for numeric arrays cell for character arrays Preallocating a Nondouble Matrix A = int8(zeros(100)); A = zeros(100, int8); ;Assigning Variables If you need to store data of a different type, it is advisable to create a new variable. Changing the class or array shape of an existing variable slows MATLAB down because it takes extra time to process. You should not assign a real value to a variable that already holds a complex value, and vice versa. Assigning a complex number to a variable that already holds a real number impacts the performance of your program. X = 23; . -- other code -- . X = A; % X changed from type double to char . -- other code --;Using Appropriate Logical Operators Operator Description , | Perform logical AND and OR on arrays element by element , || Perform logical AND and OR on scalar values with short-circuiting In if and while statements, it is more efficient to use the short-circuit operators, and ||: if (isnumeric(varargin{1})) (ischar(varargin{2}));Additional Tips on Improving Performance;Part II: Vectorization;Using Vectorization;Indexing Methods for Vectorization;Linear Indexing A = [11 12 13; 14 15 16; 17 18 19]; A(6) A([3,1,8]) A([3;1;8]) Note: Use the functions sub2ind and ind2sub to convert between subscripted and linear indices.;Logical Indexing MATLAB selects elements of A that contain a 1 in the corresponding position of the logical matrix: A = [11 12 13; 14 15 16; 17 18 19]; A(logical([0 0 1; 0 1 0; 1 1 1])) ;Array Operations;Logical Array Operations;Matrix Operations;Ordering, Setting, and Counting Operations;Functions Commonly Used in Vectorizing;Part III Matrix Indexing in MATLAB;Indexing Matrices with Two Subscripts A = magic(4) A(2,4) % Extract the element in row 2, column 4 A(2:4,1:2) A(3

文档评论(0)

1亿VIP精品文档

相关文档