matlab批量赋值计算效率低怎么办

我的数学公式包含很多的未知数,现在这些未知数我要进行逐个求偏导来求梯度,
求出梯度的符号公式后,由于matlab中的sub和eval的效率太低,而我的公式太过于复杂,导致运行速度太慢,matlab能不能解决这个问题,或者用别的语言解决

  1. 尽量避免使用循环结构
  2. 在使用数组或矩阵之前先定义维数
  3. 对矩阵元素使用下标或者索引操作
  4. 尽量多使用函数文件少使用脚本文件
  5. 在必须使用循环时,可以考虑转换为C-MEX

批量?能不能算法上优化一下? 使用更高级的数据结构或者更底层的语言或者变成并发编程可行不?