【问题标题】:Convert MATLAB NaN to SQL Null in a cell array将 MATLAB NaN 转换为元胞数组中的 SQL Null
【发布时间】:2014-02-27 23:43:33
【问题描述】:

我有一个大型元胞数组。我有 3 列是数字的。这些列中的某些行是 NaN。当我将数据上传到 SQL Server 时,这会导致问题(我不希望使用 matlab 函数插入)。

到目前为止,我已经尝试过以下方法,

 export_full = strrep(export_full(:, 6:9),'NaN','NULL');

返回错误信息

单元格元素必须是字符数组。

如果可以,我可以使用索引来解决这个问题吗?性能也是一个问题,因为它是一个相当大的单元阵列。

编辑

我的单元格数组是 10000 x 10 单元格 第 1 列是字符串 第 2 列是字符串 第 3 列是日期 第 4 到 10 列是数字

【问题讨论】:

  • 你能提供一个小例子export_full吗?是细胞矩阵吗?
  • @Dan 请查看 export_full 的定义

标签: sql matlab


【解决方案1】:

我认为这应该可以解决问题(感谢:http://www.mathworks.com/matlabcentral/newsreader/view_thread/283735

ind = cellfun(@(x) any(isnan(x(:))), export_full)
export_full(ind) = {'NULL'};

【讨论】:

  • 感谢确实有效。你能解释一下@(x) 的真正含义吗?
  • 它创建了所谓的匿名函数。这允许 cellfun 为数组的每个单元格调用该函数(即输入 (x) 上的 isnan(x(:))),而无需在其他任何地方创建实际函数。
猜你喜欢
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 2015-03-13
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多