我需要在Matlab中计算x>1000时的sin(4^x),其中基本上是sin(4^x mod 2π),因为sin函数中的值变得非常大,Matlab为4^1000返回无穷大。我怎样才能有效地计算它呢?我更喜欢避免使用大型数据类型。
我认为转换到像sin(n*π+z)这样的东西可能是一个可能的解决方案。
我基本上有一个大的数据集文件,我想编写一个MATLAB脚本,为它创建一个数据结构。我试着在MATLAB中读到关于使用结构化数组的文章,但是我还没有找到如何这样做的解决方案。我在MATLAB上编写脚本的经验并不多。
编辑: My data set是一大列条目,比如,每个条目都有10个不同的特征。例如,假设10万个给定的房屋和特性的列表可以是price、county、state、date等。这个文件是以txt.、xls.或任何您喜欢使用的格式显示的。
我想编写一个MATLAB脚本,它创建了一个数据结构,例如:
house(i).price
house(i).county
house(i).
我有一个三维大矩阵,第一个索引(x)表示频率,第二个和第三个索引(y和z)是数据的索引。我想打印所有频率的每个索引的数据,然后打印一个|字符和一个新的行字符。我这样做的方式如下:
% S is a 3D matrix of size (x,y,z), where y=z and x>>y
N=size(S,2);
MM=real(S);
for mi=1:N
for mj=1:N
fprintf(fid,"%.16g ",MM(:,mi,mj));
fprintf(fid,"|\n");
end
end
我正在对一个相当大的数据集进行一些时空分析(使用MATLAB),并且我不确定在我的脚本的性能方面采用什么最佳策略。
实际上,数据集被分成10个年维数组(纬度、经度、时间)=(50,60,8760)。
我分析的总体结构如下:
for iterations=1:Big Number
1. Select a specific site of spatial reference (i,j).
2. Do some calculation on the whole time series of site (i,j).
3. Store the result in archiv
我有一大组x数据和一大组y数据,它们形成了一系列不规则的洛伦兹峰。我正在尝试使用内置的matlab函数lsqcurvefit。
X = lsqcurvefit(FUN,X0,XDATA,YDATA)
我知道什么是X0,XDATA,YDATA,但我正在为FUN添加什么而苦苦挣扎。我创建了以下函数,但从matlab中提取了一条错误消息,指出:
function is undefined for arguments of type 'double'
我的函数:
function F = myfun(c,xdata)
F = c(1) + c(2)*exp(-1*(xdata-c(3)