52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: 初始化更简洁的函数 [打印本页]

作者: matlab的旋律    时间: 2017-10-25 16:00
标题: 初始化更简洁的函数
用 deal() 让初始化更简洁。 合并内容相同的初始化:
% 假如要初始化A,B,C和D为3*4阶矩阵,平常我们会用如下代码
A = zeros(3,4);
B = zeros(3,4);
C = zeros(3,4);
D = zeros(3,4);
% 利用deal()改造后,简洁相当多
[A,B,C,D] = deal(zeros(3,4));



当然,初始化的内容不一定都相同,但是仍然可以缩成一行
% 如以下例子
A = zeros(3,4);
B = [];
C = ones(2);
D = cell(2);
% 可以用deal()改造,只是长一点
[A,B,C,D] = deal(zeros(3,4),[],ones(2),cell(2));

初始化结构体数组,当行数特别多时,优势明显
% 正常方法初始化3行,两个field的结构体数组:
inl = {0, 0, 0};
% 必须得元胞数组,有些麻烦
s = struct('f1',inl,'f2',inl);
% 用deal改进
[s(1:3).f1,s(1:3).f2] = deal(0);
% 如果内容不一样,就每个field分开来
[s(1:3).f1] = deal(0);
[s(1:3).f2] = deal(zeros(3)); % 把3改成任意行数n





欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2