#if (TIB_CONTROL == TRUE) for (gear = GEAR_R; gear < DRIVE_GEAR_MAX; gear++) { EdtrIn.ChassinfGearRatioArray[gear] = GetGearRatioTable(gear, GetDominantAxle()); } #else /*TIB_CONTROL == TRUE*/ #if(AUTOSAR_PROJECT_EDTR_INPUT != FALSE) (void)Rte_Read_R_ChassinfGearRatio_ChassinfGearRatioArray(gear_ratio); /* PRQA S 3417,3426 */ /* QAC DEVIATION: 2303365, 2303279 */ EdtrIn.ChassinfGearRatioArray = gear_ratio; #else /*AUTOSAR_PROJECT_EDTR_INPUT != FALSE*/ for (gear = GEAR_R; gear < DRIVE_GEAR_MAX; gear++) { EdtrIn.ChassinfGearRatioArray[gear] = GetChassinfGearRatio(gear, GetDominantAxle()); }

时间: 2024-04-06 07:31:17 浏览: 10
这是一段 C 语言的代码,其中包含了条件编译和循环语句。如果 TIB_CONTROL 宏定义为 TRUE,那么程序会进入循环语句,对数组 EdtrIn.ChassinfGearRatioArray 中的元素进行赋值操作。如果 TIB_CONTROL 宏定义为 FALSE,那么程序会根据 AUTOSAR_PROJECT_EDTR_INPUT 宏的定义情况,使用不同的方式读取数据并对数组进行赋值操作。
相关问题

运行这段代码。报错’ Unable to allocate 28.9 TiB for an array with shape (1866, 4259567003) and data type float32‘,如何解决:“smiles = data['SMILES'] fps = [] for smi in smiles: mol = Chem.MolFromSmiles(smi) fp = AllChem.GetMorganFingerprint(mol, 2) fps.append(fp.GetNonzeroElements()) fps_array = np.zeros((len(fps), max(max(fp.keys()) for fp in fps) + 1), dtype=np.float32) for i, fp in enumerate(fps): for key, value in fp.items(): fps_array[i][key] = value fps_df = pd.DataFrame(fps_array, columns=[f'Fingerprint_{i+1}' for i in range(fps_array.shape[1])])”

这个错误提示表明您尝试分配的内存空间超过了系统的可用内存限制。根据您提供的代码,生成的指纹矩阵大小为 (1866, 4259567003),这是一个非常大的矩阵,所以导致了内存不足的问题。 为了解决这个问题,您可以考虑以下几种方法: 1. 减小指纹矩阵的大小:您可以尝试减小分子指纹的维度或减少分子样本的数量,以减小生成的指纹矩阵的大小。 2. 使用稀疏矩阵表示:考虑到分子指纹通常是稀疏的,您可以使用稀疏矩阵来表示指纹矩阵,以节省内存空间。您可以使用SciPy库中的`scipy.sparse`模块来实现稀疏矩阵。 3. 分批处理:如果内存限制无法容纳整个指纹矩阵,您可以考虑将数据分批处理,逐批生成和处理分子指纹。 以下是一个示例代码,演示如何使用稀疏矩阵来表示分子指纹: ```python from scipy.sparse import csr_matrix smiles = data['SMILES'] fps = [] max_key = 0 for smi in smiles: mol = Chem.MolFromSmiles(smi) fp = AllChem.GetMorganFingerprint(mol, 2) fps.append(fp.GetNonzeroElements()) max_key = max(max_key, max(fp.keys())) fps_array = csr_matrix((len(fps), max_key + 1), dtype=np.float32) for i, fp in enumerate(fps): for key, value in fp.items(): fps_array[i, key] = value fps_df = pd.DataFrame(fps_array.toarray(), columns=[f'Fingerprint_{i+1}' for i in range(fps_array.shape[1])]) ``` 在这个示例中,我使用了`scipy.sparse.csr_matrix`来创建稀疏矩阵,并在每个非零元素的位置上设置对应的值。 请注意,这些解决方案中的每一种都有其适用的场景和限制。您需要根据具体的需求和资源限制选择合适的方法。

numpy.core._exceptions._ArrayMemoryError: Unable to allocate 37.9 TiB for an array with shape (1011173, 5150761) and data type float64

这个错误提示表示你的计算机无法分配足够的内存来创建一个形状为 `(1011173, 5150761)`,数据类型为 `float64` 的数组。这个数组大约需要 37.9 TiB 的内存,这已经超出了绝大部分计算机的内存容量。 如果你的数据集确实非常大,可能需要考虑使用分布式计算框架(如 Apache Spark)或者使用基于 GPU 的计算。另外,还可以考虑使用稀疏矩阵来存储用户-物品评分矩阵,这样可以大大减少内存占用。 例如,可以使用 `scipy.sparse` 库中的 `coo_matrix` 类来创建稀疏矩阵: ```python import numpy as np from scipy.sparse import coo_matrix # Load data from CSV file. data = np.loadtxt('my.csv', delimiter=',') user_ids = data[:, 0].astype(int) - 1 item_ids = data[:, 1].astype(int) - 1 ratings = data[:, 2] # Create sparse user-item rating matrix. R = coo_matrix((ratings, (user_ids, item_ids))) # Train model using ALS algorithm. K = 10 max_iter = 10 lambda_ = 0.1 U, V = als(R, K, max_iter, lambda_) # Predict ratings for test set. R_pred = U.dot(V.T)[R.nonzero()] # Compute RMSE. mse = np.mean((R_pred - ratings[R.nonzero()]) ** 2) rmse = np.sqrt(mse) print('RMSE:', rmse) ``` 上面的代码使用 `coo_matrix` 类创建稀疏矩阵 `R`,然后将其作为参数传递给 `als` 函数进行训练。在计算 RMSE 时,我们只需要使用非零元素的位置来选择预测评分和实际评分,这样可以大大减少内存占用。

相关推荐

最新推荐

recommend-type

2020 年TI 杯大学生电子设计竞赛 E 题:放大器非线性失真研究装置

2020 年TI 杯大学生电子设计竞赛 E 题:放大器非线性失真研究装置 设计并制作一个放大器非线性失真研究装置,其组成如图1所示,图中的 和 为 1×2切换开关,晶体管放大器只允许有一个输入端口和一个输出端口。
recommend-type

智慧物流医药物流落地解决方案qytp.pptx

智慧物流医药物流落地解决方案qytp.pptx
recommend-type

JAVA物业管理系统设计与实现.zip

JAVA物业管理系统设计与实现
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这