Convert Distributed Array to Matrix

2 visualizaciones (últimos 30 días)
Jacob Brinkmann
Jacob Brinkmann el 29 de Jun. de 2012
Respondida: shrouk mohamed el 20 de Oct. de 2018
I have a distributed array created using:
cal_data=distributed.zeros(1,2);
I would like to convert the array to a matrix, to use the curve fitting toolbox:
xdata=zeros(1,2);
xdata(:)=cal_data;
I get the following error:
The following error occurred converting from distributed to double: Conversion to double from distributed is not possible
Please help me.
Thanks for your time,
Jake Brinkmann
R2011b

Respuestas (2)

Jill Reese
Jill Reese el 29 de Jun. de 2012
The functionality you are looking for is "gather":
xdata = gather(cal_data);
If you don't mind my asking, what particular functionality are you trying to use in the Curve Fitting Toolbox? We are always interested to hear what operations our customers want to use with distributed arrays.
  2 comentarios
Jacob Brinkmann
Jacob Brinkmann el 29 de Jun. de 2012
Editada: Walter Roberson el 2 de Jul. de 2012
>>[fresult,gof,output]=fit(xdata,ydata,'poly1',opts);
Warning: Converting X to matrix of double.
> In fit>iCreateWarningFunction/nThrowWarning at 738
In fit>iFit at 144
In fit at 109
In tirs_datasets at 104
In tirs_tool_v2>files_calculate_button_Callback at 274
In gui_mainfcn at 96
In tirs_tool_v2 at 50
In @(hObject,eventdata)tirs_tool_v2('files_calculate_button_Callback',hObject,eventdata,guidata(hObject))
Error using distributed/subsref (line 33)
Distributed SUBSREF currently only supports () indexing.
Error in fit>iFit (line 461)
[~, A] = feval(model,coefftemp{:},probparams{:},xdatacell{:});
Error in fit (line 109)
[fitobj, goodness, output, convmsg] = iFit( xdatain, ydatain, fittypeobj, ...
Jill Reese
Jill Reese el 2 de Jul. de 2012
Jacob,
Unfortunately, some of the MATLAB functions used by the Curve Fitting Toolbox's fit function are not currently implemented for distributed arrays. In the interim, if you need a simple linear fit to data you might check if polyfit has the functionality you need. I tried some simple examples and it seems like polyfit works with distributed arrays if the first input argument is not distributed but the second one is.
B=1:1000;
A=2*B-4;
z=polyfit(B,distributed(A),1);

Iniciar sesión para comentar.


shrouk mohamed
shrouk mohamed el 20 de Oct. de 2018
Thank you, this was helpful.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by