[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Matlab to Octave - problem wih the conversion
From: |
Juan Pablo Carbajal |
Subject: |
Re: Matlab to Octave - problem wih the conversion |
Date: |
Thu, 4 Aug 2016 12:10:11 +0200 |
On Wed, Aug 3, 2016 at 3:57 PM, Istan <address@hidden> wrote:
> Hello everybody,
>
> I have used a little code on Matlab, which runs perfectly well. For few
> reasons, I want to use a freeware. The high compatibility matlab/octave is
> the reason why I have chosen Octave. However, my code doesn't run at all, it
> seems there is a problem with textscan. If someone can help me to resolve my
> problem :
>
> The code :
>
> % generate a function instead of a script.
> % Auto-generated by MATLAB on 2016/07/29 16:20:55
> %% Initialize variables.
>
> delimiter = ' ';
>
> %% Read columns of data as strings:
> % For more information, see the TEXTSCAN documentation.
> formatSpec = '%s%s%[^\n\r]';
>
> %% Open the text file.
> fileID = fopen('1.txt','r');
>
> %% Read columns of data according to format string.
> % This call is based on the structure of the file used to generate this
> % code. If an error occurs for a different file, try regenerating the code
> % from the Import Tool.
> dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter,
> 'MultipleDelimsAsOne', true, 'ReturnOnError', false);
>
> %% Close the text file.
> fclose(fileID);
>
> %% Convert the contents of columns containing numeric strings to numbers.
> % Replace non-numeric strings with NaN.
> raw = [dataArray{:,1:end-1}];
> numericData = NaN(size(dataArray{1},1),size(dataArray,2));
>
> for col=[1,2]
> % Converts strings in the input cell array to numbers. Replaced
> non-numeric
> % strings with NaN.
> rawData = dataArray{col};
> for row=1:size(rawData, 1);
> % Create a regular expression to detect and remove non-numeric
> prefixes and
> % suffixes.
> regexstr =
> '(?<prefix>.*?)(?<numbers>([-]*(\d+[\,]*)+[\.]{0,1}\d*[eEdD]{0,1}[-+]*\d*[i]{0,1})|([-]*(\d+[\,]*)*[\.]{1,1}\d+[eEdD]{0,1}[-+]*\d*[i]{0,1}))(?<suffix>.*)';
> try
> result = regexp(rawData{row}, regexstr, 'names');
> numbers = result.numbers;
>
> % Detected commas in non-thousand locations.
> invalidThousandsSeparator = false;
> if any(numbers==',');
> thousandsRegExp = '^\d+?(\,\d{3})*\.{0,1}\d*$';
> if isempty(regexp(thousandsRegExp, ',', 'once'));
> numbers = NaN;
> invalidThousandsSeparator = true;
> end
> end
> % Convert numeric strings to numbers.
> if ~invalidThousandsSeparator;
> numbers = textscan(strrep(numbers, ',', ''), '%f');
> numericData(row, col) = numbers{1};
> raw{row, col} = numbers{1};
> end
> catch me
> end
> end
> end
>
>
> %% Replace non-numeric cells with NaN
> R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % Find non-numeric
> cells
> raw(R) = {NaN}; % Replace non-numeric cells
>
> %% Allocate imported array to column variable names
> VarName1 = cell2mat(raw(:, 1));
> x1 = cell2mat(raw(:, 2));
>
> %% Clear temporary variables
> clearvars filename delimiter formatSpec fileID dataArray ans raw numericData
> col rawData row regexstr result numbers invalidThousandsSeparator
> thousandsRegExp me R;
>
> %%%%%%%%%%%%%%%
> plot(VarName1*1000,x1,'k')
> axis([0 100 600 1600])
> %%%%%%%%%%%%%%
>
> and the file 1.txt
> <http://octave.1599824.n4.nabble.com/file/n4678981/1.txt>
>
> Thank you for reading and help.
>
> Guillaume
>
>
>
> --
> View this message in context:
> http://octave.1599824.n4.nabble.com/Matlab-to-Octave-problem-wih-the-conversion-tp4678981.html
> Sent from the Octave - General mailing list archive at Nabble.com.
>
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-octave
Hi,
GNU Octave is not freeware, it is FOSS software. It might be good to
take a look and understand the difference. You wont make many friends
calling FOSS projects "freeware".
It seems the file you are using belongs to Mathworks and I am not sure
you are allowed to use it in Octave. Could you check the Terms of Use?
last time we checked their files are to be used only with Mathworks
products.
Cheers
- Matlab to Octave - problem wih the conversion, Istan, 2016/08/03
- Re: Matlab to Octave - problem wih the conversion,
Juan Pablo Carbajal <=
- Re: Matlab to Octave - problem wih the conversion, Sebastian Schöps, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Istan, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Juan Pablo Carbajal, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Juan Pablo Carbajal, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Istan, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Juan Pablo Carbajal, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Istan, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Juan Pablo Carbajal, 2016/08/04
- Re: Matlab to Octave - problem wih the conversion, Istan, 2016/08/05
- Re: Matlab to Octave - problem wih the conversion, Sebastian Schöps, 2016/08/04