Ler*_*ler 4 matlab lambda anonymous-function
在 MATLAB 中,我试图在元胞数组上执行一个函数,但运气不佳。我想创建一个cellfun检查是否str2double返回NaN值,然后str2double对不是的值执行的NaNs。我正在尝试使用带有 IF Else 类型语句的匿名函数,但实际上并没有得到任何结果。这是我到目前为止的想法:
x = cellfun(@(x)~isnan(str2double(x)),str2double(x))
Run Code Online (Sandbox Code Playgroud)
但是它不起作用,有人可以帮助我吗?
这是一个不错的、紧凑且有效的 iif 实现:
iif = @(varargin) varargin{3-(varargin{1}>0)}
Run Code Online (Sandbox Code Playgroud)
用法:
iif(condition, true_value, false_value)
Run Code Online (Sandbox Code Playgroud)
如果条件计算结果为真,则函数返回真值,否则返回 false_falue。
这是一个有用的过滤器,可以应用于从 csv 或 excel 文件读取的单元格,以便它们可以用作数字数组。例如,在使用 xlsread 读取的数组 Ra 上:
numeric_array = cellfun( @(x) iif(isnumeric(x) & ~isempty(x),x,NaN), Ra);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1529 次 |
| 最近记录: |