Index in position 2 exceeds array bounds (imported .NET assembly)
Afficher commentaires plus anciens
hi everyone,
I deployed an own matlab function to an .net assembly and now i have some problems with the implementation.
My GUI is telling me that there is an Error in my .m-file at line 12 but I dont really see the issue.
Hope you can help me out!
This is my C# Code:
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using Gradient;
namespace matlabv3
{
public class Gradientenberechnung
{
public static void addNum()
{
int pdata = 250;
CSharpGradient gradient = new CSharpGradient();
MWArray output = gradient.gradientVarianteA((MWArray)pdata); //<-- ERROR HAPPENS HERE
Console.WriteLine("Output: ", output);
Console.ReadKey();
}
}
}
and this is the function that I'm using:
function [outputArg] = gradientVarianteA(pdata)
d = nan(10,9);
for n = 1:numel(pdata)
[j,i] = ind2sub(size(pdata),n);
switch true
case j==1
if i == 1
d(j,i) = max(abs([...
NaN NaN NaN...
NaN NaN pdata(j,i)-pdata(j,i+1)...
NaN pdata(j,i)-pdata(j+1,i) pdata(j,i)-pdata(j+1,i+1)]));
elseif i == 9
d(j,i) = max(abs([...
NaN NaN NaN...
pdata(j,i)-pdata(j,i-1) NaN NaN...
pdata(j,i)-pdata(j+1,i-1) pdata(j,i)-pdata(j+1,i) NaN]));
else
d(j,i) = max(abs([...
NaN NaN NaN...
pdata(j,i)-pdata(j,i-1) NaN pdata(j,i)-pdata(j,i+1)...
pdata(j,i)-pdata(j+1,i-1) pdata(j,i)-pdata(j+1,i) pdata(j,i)-pdata(j+1,i+1)]));
end
case j==10
if i == 1
d(j,i) = max(abs([...
NaN pdata(j,i)-pdata(j-1,i) pdata(j,i)-pdata(j-1,i+1)...
NaN NaN pdata(j,i)-pdata(j,i+1)...
NaN NaN NaN]));
elseif i == 9
d(j,i) = max(abs([...
pdata(j,i)-pdata(j-1,i-1) pdata(j,i)-pdata(j-1,i) NaN...
pdata(j,i)-pdata(j,i-1) NaN NaN...
NaN NaN NaN]));
else
d(j,i) = max(abs([...
pdata(j,i)-pdata(j-1,i-1) pdata(j,i)-pdata(j-1,i) pdata(j,i)-pdata(j-1,i+1)...
pdata(j,i)-pdata(j,i-1) NaN pdata(j,i)-pdata(j,i+1)...
NaN NaN NaN]));
end
otherwise
if i == 1
d(j,i) = max(abs([...
NaN pdata(j,i)-pdata(j-1,i) pdata(j,i)-pdata(j-1,i+1)...
NaN NaN pdata(j,i)-pdata(j,i+1)...
NaN pdata(j,i)-pdata(j+1,i) pdata(j,i)-pdata(j+1,i+1)]));
elseif i == 9
d(j,i) = max(abs([...
pdata(j,i)-pdata(j-1,i-1) pdata(j,i)-pdata(j-1,i) NaN...
pdata(j,i)-pdata(j,i-1) NaN NaN...
pdata(j,i)-pdata(j+1,i-1) pdata(j,i)-pdata(j+1,i) NaN]));
else
d(j,i) = max(abs([...
pdata(j,i)-pdata(j-1,i-1) pdata(j,i)-pdata(j-1,i) pdata(j,i)-pdata(j-1,i+1)...
pdata(j,i)-pdata(j,i-1) NaN pdata(j,i)-pdata(j,i+1)...
pdata(j,i)-pdata(j+1,i-1) pdata(j,i)-pdata(j+1,i) pdata(j,i)-pdata(j+1,i+1)]));
end
end
end
outputArg = d;
end
Réponses (0)
Catégories
En savoir plus sur Deploy to .NET Applications Using MWArray API dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!