- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
提高Matlab代码效率(improveMatlabPerformance)概要
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)